当我命名向量的元素时,我使用标签-值对,如下所示:
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)
还有更多。
前几天被这个问题启发了: