R 为什么可以';在c()中命名向量元素,标记从其他变量索引?
当我命名向量的元素时,我使用如下的标记-值对:R 为什么可以';在c()中命名向量元素,标记从其他变量索引?,r,vector,naming,R,Vector,Naming,当我命名向量的元素时,我使用如下的标记-值对: myvec <- c("name1" = 1, "name2" = 2, "name3" = 3) > myvec name1 name2 name3 1 2 3 还有一些 几天前的这个问题启发了我: 我相信这是因为您调用的函数带有命名参数c是一个简单的函数,命名元素部分只是一个命名参数。在R中,可以有位置或文字命名的参数。这就是为什么不能使用变量值作为名称的位置。(不过,对于使用变量命名参数调用函数,有
myvec <- c("name1" = 1, "name2" = 2, "name3" = 3)
> myvec
name1 name2 name3
1 2 3
还有一些
几天前的这个问题启发了我:
我相信这是因为您调用的函数带有命名参数
c
是一个简单的函数,命名元素部分只是一个命名参数。在R中,可以有位置或文字命名的参数。这就是为什么不能使用变量值作为名称的位置。(不过,对于使用变量命名参数调用函数,有一些变通方法,请参见do.call
)以补充一点,即在命名值时不需要使用引号。你可以做c(a=3,b=2)谢谢你的评论。“文字”是什么意思?我一直认为文字就是引号中包含的一切。为什么我如何将这个文本传递给函数很重要?@MrGumble,post-as-answer?是的,我明白了,但是缺少了一些东西。我只是不理解这个飞跃:无论是位置参数还是文字命名参数都没有变量值。因为在c()
中,在我想到一个名称并将其传递给函数之前,名称并不存在。为什么要打字?
namevec <- c("name1", "name2", "name3")
myvec <- c(namevec[1] = 1, namevec[2] = 2, namevec[3] = 3)
Error: unexpected '=' in "myvec <- c(namevec[1] ="
"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