微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有条件地删除 R 中的行

如何解决有条件地删除 R 中的行

数据框:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。