R автоматическое изменение имен - PullRequest
2 голосов
/ 19 апреля 2011

Я наткнулся на это странное поведение в R:

> a = 5
> names(a) <- "bar"
> b = c(foo = a)
> names(b)
[1] "foo.bar"

Почему имена объединяются / складываются?

Я нашел этот синтаксис c(a=b) в скрипте, но не смог найти документацию по нему. Есть ли для этого какая-либо документация?

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

Почему имена получают сцепленных / сложены?

Потому что он сохраняет всю информацию об имени, которая присутствовала до объединения. Если вам это не нравится, используйте unname.

Я нашел этот синтаксис c (a = b) в сценарий, но я не смог найти документация об этом. Есть ли документация для этого?

Некоторые примеры на странице ?c демонстрируют поведение c(name = value), но в этом нет ничего более важного. Вы также можете посмотреть на ?names.

1 голос
/ 19 апреля 2011

Также может быть полезно посмотреть, что произойдет, если a является вектором;в этом случае, если foo=a просто переопределит имя, все элементы вектора будут иметь одно и то же имя.Вместо этого, как в следующем примере, четыре элемента заканчиваются уникальными именами, которые могут быть хорошими.

> a <- c(A=1, B=2)
> b <- c(A=3, B=4)
> c(a=a, b=b)
a.A a.B b.A b.B 
  1   2   3   4 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...