【发布时间】:2011-09-08 19:25:15
【问题描述】:
我想通过指定将哪些行不 (!) 保留在新数据框中来对数据框进行子集化(过滤)。这是一个简化的示例数据框:
data
v1 v2 v3 v4
a v d c
a v d d
b n p g
b d d h
c k d c
c r p g
d v d x
d v d c
e v d b
e v d c
例如,如果列 v1 的一行有“b”、“d”或“e”,我想去掉那一行观察结果,生成以下数据框:
v1 v2 v3 v4
a v d c
a v d d
c k d c
c r p g
我一次成功地根据一个条件进行子集化。例如,这里我删除了 v1 包含“b”的行:
sub.data <- data[data[ , 1] != "b", ]
但是,我有很多很多这样的条件,所以一次做一个是不可取的。我在以下方面没有成功:
sub.data <- data[data[ , 1] != c("b", "d", "e")
或
sub.data <- subset(data, data[ , 1] != c("b", "d", "e"))
我也尝试了一些其他的东西,比如!%in%,但这似乎不存在。
有什么想法吗?
【问题讨论】: