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

zzk*_*zzk 22 variables r variable-assignment

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

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

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

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

 z <- "names<-"(z,
     "[<-"(names(z), 3, "c2"))’.
Run Code Online (Sandbox Code Playgroud)

所以没有震惊它不起作用,我只是想知道是否有一个解决方案.

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

names(z <- 1:3) <- c("a", "b", "c")
> z
a b c 
1 2 3 
Run Code Online (Sandbox Code Playgroud)

只是浪费空间把它放在两条不同的线上.

Jos*_*ien 41

如何使用setNames(),看起来比你建议的理想更干净/更清晰?

z <- setNames(1:3, c("a", "b", "c"))
# z
# a b c 
# 1 2 3 
Run Code Online (Sandbox Code Playgroud)

  • 刚刚检查,显然设置名称只是“常规方式”的函数包装。仍然是一个节省空间的工具,但是它没有做任何花哨的事情。 (2认同)