【发布时间】:2013-11-02 01:44:53
【问题描述】:
对于 R 中的大多数基本数据结构,可以同时分配值和名称。例如:
l <- list(a=1:3, b=4)
m <- matrix(1:9, 3, 3, dimnames=list(letters[1:3], letters[1:3]))
d <- data.frame(a=1:5, b=letters[1:5], c=rnorm(5))
但是对于向量,这是不同的。据我所知,将names 提供给向量的唯一方法是事后:
v <- 1:3
names(v) <- letters[1:3]
c 没有允许您在实例化时指定 names 的参数。
尝试在分配时执行此操作(例如在 lists 或 data.frames 中)也不起作用:
v <- c("a"=1) # error
是否可以同时分配数据和向量的名称?
【问题讨论】:
-
但是您没有像创建列表和数据框时那样尝试:
v <- c(a=1)或v <- setNames(1,"a") -
运行
c("a"=1)时遇到什么错误? -
原来我试过
c(letters[1:3]=1:3)并给出了错误,但c("a"=1)有效(以及c("a"=1, "b"=2, ...)的扩展。但@JoshuaUlrich 的答案更方便 -
@Manetheran,你为什么不直接写一个答案并接受它以表明这个问题有答案。
-
会的!由于投反对票,我把它写成一个愚蠢的问题。