【发布时间】:2022-11-29 20:30:27
【问题描述】:
我有以下名为 df 的数据框(dput 下面):
group indicator value
1 A FALSE 2
2 A FALSE 1
3 A FALSE 2
4 A TRUE 4
5 B FALSE 5
6 B FALSE 1
7 B TRUE 3
我想删除每组 indicator == FALSE 的非最后一行。这意味着在 df 中,应删除行:1,2 和 5,因为它们不是每组 FALSE 的最后一行。这是所需的输出:
group indicator value
1 A FALSE 2
2 A TRUE 4
3 B FALSE 1
4 B TRUE 3
所以我想知道是否有人知道如何删除 R 中每组具有特定条件的非最后一行?
df 的dput:
df <- structure(list(group = c("A", "A", "A", "A", "B", "B", "B"),
indicator = c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE
), value = c(2, 1, 2, 4, 5, 1, 3)), class = "data.frame", row.names = c(NA,
-7L))
【问题讨论】:
-
@AnoushiravanR,我的错,应该是 FALSE 指标。我在问题中更改了它。
-
@AnoushiravanR,因为第 3 行是 FALSE 的最后一行。我想保留每组最后一行的所有 FALSE。这就是为什么不删除第 3 行和第 6 行的原因。
-
最后一行指示符总是 TRUE 还是也可能为 FALSE?
-
@AnoushiravanR,TRUE 的行应该什么都不会发生。所以他们需要留下来。