我创建了一些顺序命名的变量,即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
等
任何帮助都非常感谢!
答案 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))
}