为什么我不能使用从其他变量索引的标签来命名 c() 内的向量元素?

Hum*_*hen 5 naming r vector

当我命名向量的元素时,我使用标签-值对,如下所示:

myvec <- c("name1" = 1, "name2" = 2, "name3" = 3)

> myvec
name1 name2 name3 
    1     2     3 
Run Code Online (Sandbox Code Playgroud)

当我创建一个包含名称的向量并从 c() 函数内部索引该向量时,它不起作用。

namevec <- c("name1", "name2", "name3")

myvec <- c(namevec[1] = 1, namevec[2] = 2, namevec[3] = 3)
Error: unexpected '=' in "myvec <- c(namevec[1] ="

Run Code Online (Sandbox Code Playgroud)

我现在的问题是:这是为什么?为什么如果我写它可以工作"name1",但如果我使用namevec[1]它返回"name1",它会抛出错误?

注意:我并不是要求解决方法。解决方法有很多,例如:

"names<-"(c(1,2,3), namevec)
name1 name2 name3 
    1     2     3

setNames(c(1,2,3), namevec)
name1 name2 name3 
    1     2     3

structure(c(1,2,3), .Names = namevec)
name1 name2 name3 
    1     2     3 
Run Code Online (Sandbox Code Playgroud)

还有更多。

前几天被这个问题启发了:

通过引用 R 中字符向量中的元素来命名 rbind/list 中的元素