Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为什么可以';在c()中命名向量元素,标记从其他变量索引?_R_Vector_Naming - Fatal编程技术网

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