【发布时间】:2021-06-09 10:55:12
【问题描述】:
数据框:
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
谢谢,
【问题讨论】:
标签: r statistics
数据框:
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
谢谢,
【问题讨论】:
标签: r statistics
my.data.frame <- subset(data , A != "x" | A != "z")
顺便说一句,How to combine multiple conditions to subset a data-frame using "OR"? 的副本
【讨论】:
你可以试试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", "y", "z", "z"), B = c(1L,
0L, 0L, 0L, 0L, 1L)), class = "data.frame", row.names = c(NA,
-6L))
【讨论】:
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
【讨论】: