为矢量条目指定名称而不为矢量指定变量名称?

时间:2012-08-02 19:43:09

标签: r variables variable-assignment

在R中,是否可以在不首先将该向量分配给变量名的情况下为矢量的分量指定名称? 通常的方法显然是:

z <- 1:3
names(z) <- c("a", "b", "c") #normal way
names(1:3) <- c("a", "b", "c") #throws an error

第二种方式抛出“名称错误(1:3)&lt; - c(”a“,”b“,”c“):   赋值目标扩展为非语言对象“

根据文档,表达式被评估为

 z <- "names<-"(z,
     "[<-"(names(z), 3, "c2"))’.

所以没有震惊它不起作用,我只是想知道是否有解决方法。

理想情况下,有这样的东西会很好:

names(z <- 1:3) <- c("a", "b", "c")
> z
a b c 
1 2 3 

将它放在两条不同的线上似乎是浪费空间。

2 个答案:

答案 0 :(得分:41)

如何使用setNames(),这似乎比你建议的理想更清晰/更清晰?

z <- setNames(1:3, c("a", "b", "c"))
# z
# a b c 
# 1 2 3 

答案 1 :(得分:4)

一直以为这个更干净,也不需要额外的包裹:

z <- c(a=1, b=2, c=3)
# z
# a b c 
# 1 2 3