2012-03-22 4 views
6

"브이 $ A의 오류 : $ 연산자는 원자 벡터에 대해 유효하지 않습니다"라는 오류가 발생합니다 다음 (적어도 R 버전 2.14.1에서) :

v <- c(a='a',b='b') 
v$a 

분명히, R 이전에이를 허용한다 왜 그런지 궁금 하네.

EDIT : 아래에서 지적한대로 v$a은 이전 버전에서 NULL을 반환했을 것입니다. 이전의 인터넷 포럼을 기반으로하기 때문에 "공정하게 최근"을 "이전"으로 변경했으며 아래에서 수정했습니다.

+0

Tyler가 제공하는 LINK는 여러분의 "꽤 최근"버전이 틀림없이 왜곡되어 있음을 보여 주며 그것이 생산적인 전략이 아닐 수도 있다고 제안합니다. 왜냐하면 여러분이 생각해야 할 때 'NULL'을 반환했을 것이기 때문입니다 "a"를 반환했습니다. –

답변

7

나는 v$av[['a']]의 사용이 덜 안전하다고 생각합니다.

편집 : 자세한 내용은 LINK을 확인하십시오. ?"$"의 세부 사항 섹션의

+1

무엇으로부터 안전합니까? –

+22

@MattParker : 좀비. –

+2

체크 아웃 [링크] (http://tolstoy.newcastle.edu.au/R/e3/help/07/12/5772.html) –

6

세 번째 문단 :

'$'는 재귀 객체에 대해서만 유효, 오직 재귀 개체 아래 섹션에 설명되어 있습니다. 비 반복적 인 객체에 대한 사용 은 R 2.5.0에서 더 이상 사용되지 않으며 R 2.7.0에서 제거되었습니다.

R-2.7.0이 2008 년 4 월에 출시되었습니다. 4 년은 "최근"와는 거리가 있지만 어쩌면 몇 버전 뒤에 있었을 것입니까?

+0

감사합니다. 비 재귀 객체에 대해 왜 사용되지 않는 이유가 있습니까? 그것은 언어 측면에서 보면 최근의 일입니다. :-). 나는 사실 R 만 약 1 년 동안 사용 해왔다. 그래서이 변화는 내 시간 이전이었다. – Jonathan

+1

@Jonathan : [Tyler Rinker의 답변] (http://stackoverflow.com/a/9824326/271616)의 댓글에서 링크/토론을 참조하십시오. –

관련 문제