在实例化时为向量分配名称

Sco*_*hie 2 r vector

对于 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))
Run Code Online (Sandbox Code Playgroud)

然而对于向量来说这是不同的。据我所知,赋予names向量的唯一方法是之后:

v <- 1:3
names(v) <- letters[1:3]
Run Code Online (Sandbox Code Playgroud)

c没有允许您指定namesat 实例化的参数。
尝试在分配时执行此操作(例如 inlistsdata.frames)也不起作用:

v <- c("a"=1)  # error
Run Code Online (Sandbox Code Playgroud)

是否可以同时分配向量的数据和名称?

Sco*_*hie 5

正如 Joshua Ulrich 在评论中回答的那样,正确的答案是使用setNames

v <- setNames(1:2, letters[1:2])
Run Code Online (Sandbox Code Playgroud)

我原来的问题也是不正确的:v <- c("a"=1)有效,但是扩展它是相当乏味的:v <- c("a"=1, "b"=2, ...)