R:如何将选择表达式列表(本例中为字符串)传递给子集函数?

时间:2010-04-09 17:51:31

标签: r subset logical-operators

以下是一些示例数据:

data = data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6))

> data
  series reading
1     1a     0.1
2     1b     0.4
3     1e     0.6

我可以使用子集提取选择性单行:

> subset (data, series == "1a")
  series reading
1     1a     0.1

使用逻辑OR

拉出多行
> subset (data, series == "1a" | series  == "1e")
  series reading
1     1a     0.1
3     1e     0.6

但是如果我有很长的系列表达式列表,那么输入会非常烦人,所以我更喜欢用更好的方式定义它们,如下所示:

series_you_want = c("1a", "1e")  (although even this sucks a little)

并且可以做这样的事情,

subset (data, series == series_you_want)

以上显然都失败了,我只是不确定最好的办法是什么?

1 个答案:

答案 0 :(得分:1)

您可能需要%in%运算符

> dat <- data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6))
> series_you_want <- c("1a", "1e")
> subset(dat, series %in% series_you_want)