R:如何选择表达式(在这种情况下字符串)的列表传递给子集功能?

StackOverflow https://stackoverflow.com/questions/2609647

  •  25-09-2019
  •  | 
  •  

下面是一些示例性数据:

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)

在上面明明失败了,我只是不知道该怎么办的最好的办法,这是?

有帮助吗?

解决方案

您可能希望%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) 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top