R自动名称修改

时间:2011-04-19 06:08:30

标签: r

我在R中偶然发现了这种奇怪的行为:

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

为什么这些名称会被连接/堆叠?

我在脚本中发现了这个c(a=b)语法,但我找不到有关它的文档。有没有相关的文件?

2 个答案:

答案 0 :(得分:3)

  

为什么名字得到   级联/堆叠?

因为它保留了串联之前存在的所有名称信息。如果您不喜欢,请使用unname

  

我在a中找到了这个c(a = b)语法   脚本,但我找不到   关于它的文档。有没有   那个文件?

?c页面上的一些示例演示了c(name = value)行为,但没有比此更多的内容。您可能还想查看?names

答案 1 :(得分:1)

如果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