gpt4 book ai didi

r - 根据多个先前行/列中的值删除数据框中的行

转载 作者:行者123 更新时间:2023-12-05 00:51:56 24 4
gpt4 key购买 nike

我有以下数据框:

   x  y  z
1 a c 0
2 a c 0
3 a c 1
4 a c 0
5 a c 0
6 b c 0
7 b c 0
8 b c 0
9 b c 1
10 b c 0
11 b c 0
12 b c 0
13 a d 0
14 a d 0
15 a d 0

我想删除在 z 列的前一行中有 1 且 x 和 y 列具有相同值的行。例如,对于第 10 行,我想在第 1:9 行中搜索 x = "b"、y = "c"和 z 等于 1 的行。如果在第 1:9 行中存在这样的行,我想删除第 10 行。

因此,生成的数据帧将删除第 4、5、10、11 和 12 行:
   x  y  z
1 a c 0
2 a c 0
3 a c 1
4 b c 0
5 b c 0
6 b c 0
7 b c 1
8 a d 0
9 a d 0
10 a d 0

最佳答案

我们可以通过 data.table 做到这一点

library(data.table)
setDT(df1)[-df1[, .I[cummin(c(0, diff(z==1)))<0], .(x, y)]$V1]
# x y z
# 1: a c 0
# 2: a c 0
# 3: a c 1
# 4: b c 0
# 5: b c 0
# 6: b c 0
# 7: b c 1
# 8: a d 0
# 9: a d 0
#10: a d 0

关于r - 根据多个先前行/列中的值删除数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43683856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com