R 将字符串列表转换为调用已设置的值?

R 将字符串列表转换为调用已设置的值?,r,R,是否可以转换字符串列表,使其返回以其命名的值 例如,我有一个用粘贴制作的字符串列表: mylist <- c("nhdata$Credit", "nhdata$Honey", "nhdata$Plants") mylist mylist您可以使用get功能: temp <- 1:10 get("temp") 您可以使用get功能: temp <- 1:10 get("temp") 如果这些都在同一数据帧中,则不要使用data.frame名称作为向量的一部分,例如,cols

是否可以转换字符串列表,使其返回以其命名的值

例如,我有一个用粘贴制作的字符串列表:

mylist <- c("nhdata$Credit", "nhdata$Honey", "nhdata$Plants")
mylist

mylist您可以使用
get
功能:

temp <- 1:10
get("temp")

您可以使用
get
功能:

temp <- 1:10
get("temp")

如果这些都在同一数据帧中,则不要使用data.frame名称作为向量的一部分,例如,
cols=c(“mpg”、“hp”、“am”)
then
mtcars[cols]
工作正常。还有一个向量,而不是
列表
。如果可能的话,这是一个最好避免的黑客构造,但是如果这真的是你所拥有的,你需要像
sappy(mylist,function(x){eval(parse(text=x))})
这样的东西。如果你需要去掉data.frame名称来使用Gregor的方法(不太黑客),你可以使用
sub('.\\\$,'',mylist)
Gregor的解决方案非常适合我需要的东西谢谢!如果这些都在同一个数据帧中,那么不要使用data.frame名称作为向量的一部分,例如,
cols=c(“mpg”、“hp”、“am”)
then
mtcars[cols]
工作正常。另外,你有一个向量,而不是一个
列表
。如果可能的话,这是一个最好避免的黑客构造,但是如果这是你真正拥有的,你需要类似
sapply(mylist,function(x){eval(parse(text=x))})的东西。
如果你需要去掉data.frame名称来使用Gregor的方法(不太黑客),您可以使用
sub('.\\\$,'',mylist)
Gregor的解决方案非常适合我的需要谢谢!
nhdata[[mylist[1]]]