将顺序命名的变量传递给R中循环内的函数

时间:2015-05-18 09:53:35

标签: r

我创建了一些顺序命名的变量,即holder1, holder2, holder3,,其中包含我希望传递给grep的单个字符串

然而,当我将持有者变量传递给grep时,我无法让持有者变量返回它们的值,而不仅仅是它们的名字,我当前的尝试看起来像:

vec<-c("str1","str2","str3","str4")

for(i in 1:length(vec)){
  assign(paste("holder",i,sep=""),vec[i])
   positions[i]<-grep( eval (paste ("holder",i,sep="")) ,colnames(df),ignore.case=TRUE)

}

这将在holder1的同名中搜索df,这不是我想要的,我想在df {{1}内搜索holder i的内容}} str1

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

用eval解析它并解析:

  for(i in 1:length(vec)){
    assign(paste("holder",i,sep=""),vec[i])
    print ( paste ("holder",i,sep="") )
    positions<-c(positions,grep( eval( parse(text= paste ("holder",i,sep="")) ),colnames(data),ignore.case=TRUE))
  }