问题描述
数据框:
A ; B
x 1
x 7
y 2
y 3
z 9
z 1
我想删除 A=x 和 A=z 的所有行,因为 x 和 z 在 B 列中的值为 1。因此,数据框必须如下所示:
A ; B
y 2
y 3
谢谢,
解决方法
你可以试试subset
> subset(df,! A %in% c("x","z"))
A B
3 y 0
4 y 0
数据
> dput(df)
structure(list(A = c("x","x","y","z","z"),B = c(1L,0L,1L)),class = "data.frame",row.names = c(NA,-6L))
,
my.data.frame <- subset(data,A != "x" | A != "z")
顺便说一句,How to combine multiple conditions to subset a data-frame using "OR"? 的副本
,data.table
方法
library( data.table )
DT <- fread("A B
x 1
x 7
y 2
y 3
z 9
z 1")
DT[ copy(DT)[,temp := sum(B == 1),by = A ]$temp == 0,]
# A B
# 1: y 2
# 2: y 3