Почему R не допускает оператора $ на атомных векторах? - PullRequest
6 голосов
/ 22 марта 2012

Следующая ошибка выдаст сообщение об ошибке «Ошибка в v $ a: оператор $ недопустим для атомарных векторов» (по крайней мере, в версии R 2.14.1):

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

По-видимому, R ранее разрешал это, что делает меня любопытным, почему.

РЕДАКТИРОВАТЬ: Как указано ниже, v$a вернул бы NULL в более ранних версиях.Изменилось «довольно недавно» на «ранее», поскольку я основывал это на старых интернет-форумах и исправлял ниже.

Ответы [ 2 ]

8 голосов
/ 22 марта 2012

Я считаю, что причина в том, что использование v$a против v[['a']] считается менее безопасным.

РЕДАКТИРОВАТЬ: Проверьте это ССЫЛКА для более подробной информации.

6 голосов
/ 22 марта 2012

Третий абзац раздела Details в ?"$":

'$' действителен только для рекурсивных объектов и обсуждается только в разделе ниже о рекурсивных объектах.Его использование на нерекурсивных объектах устарело в R 2.5.0 и удалено в R 2.7.0.

R-2.7.0 был выпущен в апреле 2008 года.", но, может быть, вы какое-то время были позади на несколько версий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...