R dplyr 子集中的子集
subset within a subset in R dplyr
我需要删除子集中满足条件的几行。
例如,使用 iris 数据集,我想删除所有 Sepal.Width
= 3.2 的行,但仅限于 setosa
我试过这个:
filter(iris, !Species %in% "setosa" & !Sepal.Width==3.2)
但是他删除了所有包含 setosa
的行和包含 Sepal.Width==3.2
的所有行,而不是同时考虑这两个条件(即只删除 'setosa' 中条件的行并保留其余的
这是使用 dplyr
的一种方法:
iris %>% filter(!(Sepal.Width == 3.2 & Species == "setosa"))
或以 R 为基数:
iris[!(iris$Species == "setosa" & iris$Sepal.Width == 3.2), ]
最后但并非最不重要的一点是 subset
:
subset(iris, !(Species == "setosa" & Sepal.Width == 3.2))
但我认为还有其他方法可以执行此类子集操作,例如,使用数据 table。
我需要删除子集中满足条件的几行。
例如,使用 iris 数据集,我想删除所有 Sepal.Width
= 3.2 的行,但仅限于 setosa
我试过这个:
filter(iris, !Species %in% "setosa" & !Sepal.Width==3.2)
但是他删除了所有包含 setosa
的行和包含 Sepal.Width==3.2
的所有行,而不是同时考虑这两个条件(即只删除 'setosa' 中条件的行并保留其余的
这是使用 dplyr
的一种方法:
iris %>% filter(!(Sepal.Width == 3.2 & Species == "setosa"))
或以 R 为基数:
iris[!(iris$Species == "setosa" & iris$Sepal.Width == 3.2), ]
最后但并非最不重要的一点是 subset
:
subset(iris, !(Species == "setosa" & Sepal.Width == 3.2))
但我认为还有其他方法可以执行此类子集操作,例如,使用数据 table。