粘贴R中的逻辑条件

时间:2010-12-02 19:40:10

标签: r

我现在重写我的问题以使其更清晰

我想替换像这样的条件,其中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="|"),]

但这不起作用

请帮助=)

马库斯

2 个答案:

答案 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="|")

这将为您提供所需的字符串,包含引号。