R 自动名称修改

R 自动名称修改,r,R,我在R中偶然发现了这种奇怪的行为: > a = 5 > names(a) <- "bar" > b = c(foo = a) > names(b) [1] "foo.bar" >a=5 >姓名(a)b=c(foo=a) >姓名(b) [1] “富吧” 为什么名称被连接/堆叠 我在脚本中找到了c(a=b)语法,但找不到相关文档。有相关的文件吗 为什么这些名字会被人记住 连接/堆叠 因为它保留了连接之前存在的所有名称信息。如果不喜欢,请使用unname 我在a中发现

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

> a = 5
> names(a) <- "bar"
> b = c(foo = a)
> names(b)
[1] "foo.bar"
>a=5
>姓名(a)b=c(foo=a)
>姓名(b)
[1] “富吧”
为什么名称被连接/堆叠

我在脚本中找到了
c(a=b)
语法,但找不到相关文档。有相关的文件吗

为什么这些名字会被人记住 连接/堆叠

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

我在a中发现了这种c(a=b)语法 脚本,但我找不到 关于它的文档。有吗 这方面的文件


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

如果
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 
>abc(a=a,b=b)
a、 a.a.B.a.B.B
1   2   3   4 

在帮助页面中,c(
?c
)提到函数保留名称。另一方面,您期望的输出:
“foo”
“bar”
c
是R的串联function@Marek我本以为只有
“foo”
,因为
foo=a
看起来像是在重新定义名称。