2013-06-09 2 views
2

그리스 문자를 사용하여 R의 목록 요소 이름을 지정하는 방법이 있습니까? list(α = 42)과 같은 목록을 작성해야합니다. 이 표현식의 실제 결과는 list(a = 42)의 결과와 동일합니다.그리스 문자를 사용하여 목록 요소의 이름을 지정하십시오.

expression(symbol("a"))을 사용하는 플롯에서 그리스 문자를 사용할 수 있다는 것을 알고 있지만 목록 요소의 이름으로 그리스 문자를 사용하는 해결책을 찾을 수 없습니다. as.character("\U03B1")을 사용하면 오류가 발생하며 "\U03B1"을 사용하면 "a"가됩니다. 나는 글씨가 아닌 다른 곳에 그리스 문자를 사용하는 것이 합리적이라고 생각하지만 숙제이기 때문에 길을 찾아야한다.

답변

4

나는 철저하게이 테스트를하지 않은,하지만 R은 아무 문제없이 꽤 많은 변수 이름 같은 상징을 보인다 내가 ?name

에서 가져온 이것을 제외하고 변수 명명에 대한 특정 규칙을 찾을 수 없습니다

이름은 10,000 바이트로 제한됩니다 (2.13.0 이전의 R 버전에서는 256 바이트였습니다).

(페도라 코어 18 세 이하 R 3.0.1 실행) 당신이 나를 완벽하게 작품을 게시 코드 :

, 나는 확실히 그냥 "알파"로 편지를 밖으로 철자하는 것이 좋습니다 것이라고 말했다
> a <- list(α = 42) 
> a 
$α 
[1] 42 

쓰고 유지하는 것이 더 실용적이기 때문에.

a <- list(alpha = 42) 
+9

실제로 이것을하는 것을 피하는 한 가지 강력한 이유는'list (α = 42)'가'list (⍺ = 42)'와 다르다는 것입니다. 하나는 \\03B1 GREEK SMALL LETTER ALPHA이고 다른 하나는 APL FUNCTIONAL SYMBOL ALPHA입니다. 그러나 적어도이 글꼴은 글자 그대로 구별 할 수 없습니다. 또한 [더 많은 것] (http://en.wikipedia.org/wiki/Alpha#Computer_encodings) 비슷한 것들이 있습니다. – Dougal

+0

@Dougal : 아주 좋은 지적입니다! – nico

+0

@Dougal 참으로 동의합니다. 아마도 OP는 이것을 교사에게 지적해야합니다. –

2

또는 이름 목록은 나중에 문자 벡터에서 유니 코드 기호를 사용하여 :

ll <- as.list(42) 
names(ll) <- "\u03B1" 
ll 
#$α 
#[1] 42 

흥미 롭이 작업을 수행 할 필요가있다. 또한 당신의 명부에는 생활의 의미가 있습니다.

관련 문제