我现在重写我的问题以使其更清晰
我想替换像这样的条件,其中var是dataframe(dataframe $ var)中的变量,带有粘贴或其他解决方案,因为我有很多条件值(?)(在我的示例中为a,b和c)
subdataframe<-dataframe[var=="a"|var=="b"|var=="c",]
我试图制作条件值的列表(?)。
sample<-c("a","b","c")
然后使用粘贴来制作逻辑条件
subdataframe<-dataframe[paste("var",sample,sep="==",collapse="|"),]
但这不起作用
请帮助=)
马库斯
答案 0 :(得分:7)
Heed fortune(106):
> fortune(106)
If the answer is parse() you should usually rethink the question.
-- Thomas Lumley
R-help (February 2005)
所以我鼓励你重新考虑你想要做的事情......
我猜你可以使用match
或%in%
来达到理想的效果,但你还没有告诉我们你想要做什么。
> sample <- c("a","b","c")
> var <- c("a","d","c")
> eval(parse(text=paste("var==",sample,"",sep="'",collapse="|")))
[1] TRUE FALSE TRUE
> var %in% sample
[1] TRUE FALSE TRUE
答案 1 :(得分:1)
约书亚对于使用解析是正确的。
不过,这是你问题的答案:
paste("var==\"",sample, "\"",sep="",collapse="|")
这将为您提供所需的字符串,包含引号。