用变量的值表示R中向量元素的名称?

用变量的值表示R中向量元素的名称?,r,R,对于我在R中的泛型编程问题,我觉得它可以被细化,好像可以通过变量值给出向量元素的名称一样 比如说, y <- "interesting.value" 它不适合任何人 c(y = 9) 这将产生: y 9 我尝试了以下方法,但都不起作用 c(as.name(y) = 9) Error: unexpected '=' in "c(as.name(y) =" c(as.symbol(y) = 9) Error: unexpected '=' in "c(as.symbol(y) =

对于我在R中的泛型编程问题,我觉得它可以被细化,好像可以通过变量值给出向量元素的名称一样

比如说,

y <- "interesting.value"
它不适合任何人

c(y = 9)
这将产生:

y 
9
我尝试了以下方法,但都不起作用

c(as.name(y) = 9)

Error: unexpected '=' in "c(as.name(y) ="

c(as.symbol(y) = 9)

Error: unexpected '=' in "c(as.symbol(y) ="

c(as.quoted(y) = 9)

Error: unexpected '=' in "c(as.quoted(y) ="
有没有办法做到这一点

这只是一个例子。我想学习如何对值的名称或列的名称等进行参数化

y <- "interesting.value"
x <- 5
names(x) <- y
x
也可以使用集合名


您也可以使用集合名。

对于此特定问题

y <- "interesting.value"
setNames(c(9),y)   
这不管用

如果您计划使用mutate,那么您可能正在寻找另一种形式mutate uuu:

library("dplyr")
d <- data.frame(a=1)
y <- "all.zero"
mutate_(d,.dots=setNames(list(0),y))

对于这个特殊的问题,

y <- "interesting.value"
setNames(c(9),y)   
这不管用

如果您计划使用mutate,那么您可能正在寻找另一种形式mutate uuu:

library("dplyr")
d <- data.frame(a=1)
y <- "all.zero"
mutate_(d,.dots=setNames(list(0),y))

谢谢你的及时帮助!我真的希望evalsubstituty=9,listy=interest.value的一些变体能起作用,因为我实际上需要对数据赋值左侧的符号进行参数化。frame的列名,例如y。再次感谢您给我关于mutate、、dots和setNames的指针。这正是我几个月来一直在寻找的东西!链接的解释解决了我在data.frame中操作变量列的所有需要。感谢您的及时帮助!我真的希望evalsubstituty=9,listy=interest.value的一些变体能起作用,因为我实际上需要对数据赋值左侧的符号进行参数化。frame的列名,例如y。再次感谢您给我关于mutate、、dots和setNames的指针。这正是我几个月来一直在寻找的东西!链接的解释解决了我在data.frame中操作变量列的所有需要。你的答案非常适合我的问题。我更喜欢另一个答案,因为我试图找到一种方法来表示向量或data.frame中元素名称标识的参数化通用方法,当元素数量任意时。@YuShen,不用担心,尽管请注意,只要x和y的长度相同,这个答案对任意数量的参数都有效。你的答案非常适合我的问题。我更喜欢另一个答案,因为我试图找到一种方法来表示向量或data.frame中元素名称标识的参数化通用方法,当有任意数量的元素时。@YuShen,不用担心,不过请注意,只要x和y长度相同,这个答案对任意数量的参数都有效。
library("dplyr")
d <- data.frame(a=1)
y <- "all.zero"
mutate_(d,.dots=setNames(list(0),y))