这似乎是一个基本的问题,但我找不到一个解释.
我可以这样命名一个向量:
values = c("lab1" = "my_lab1",
"lab2" = "my_lab2")
values
# lab1 lab2
# "my_lab1" "my_lab2"
我可以使用paste0
创建一个元素来创建相同的向量,如下所示:
values = c("lab1" = "my_lab1",
"lab2" = paste0("my_lab", "2"))
values
# lab1 lab2
# "my_lab1" "my_lab2"
但是,当您try 创建带有paste0
的名称时,会导致错误:
values = c("lab1" = "my_lab1",
paste0("lab", "2") = "my_lab2")
# Error: unexpected '=' in:
# "values = c("lab1" = "my_lab1",
# paste0("lab", "2") ="
Why is this?考虑到以下情况属实:
identical("lab2", paste0("lab", "2"))
[1] TRUE
一个解决方案是使用setNames
,但我感兴趣的是为什么上面的是一个问题:
setNames(c("my_lab1", "my_lab2"), c("lab1", paste0("lab", "2")))
# lab1 lab2
# "my_lab1" "my_lab2"
我在Advanced R的vector
部分没有看到任何提到这一点的地方.
谢谢