我正在尝试使用dplyr
按组获取重复值的第一行和最后一行。我这样做是出于效率原因,特别是为了使绘图速度更快。
这不是重复的从分组数据中选择第一行和最后一行 https://stackoverflow.com/questions/31528981/select-first-and-last-row-from-grouped-data因为我并不要求组中严格的第一行和最后一行;我要求一组中的第一行和最后一行by level(在我的例子中是 1 和 0)可能出现在多个块中。
这是一个例子。假设我想从 C 列中删除所有多余的 1 和 0,同时保持 A 和 B 完好无损。
df = data.frame(
A = rep(c("a", "b"), each = 10),
B = rep(c(1:10), 2),
C = c(1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,1))
A B C
a 1 1
a 2 0
a 3 0
a 4 0
a 5 0
a 6 0
a 7 1
a 8 1
a 9 1
a 10 1
b 1 0
b 2 0
b 3 0
b 4 1
b 5 0
b 6 0
b 7 0
b 8 0
b 9 0
b 10 1
最终结果应该是这样的:
A B C
a 1 1
a 2 0
a 6 0
a 7 1
a 10 1
b 1 0
b 3 0
b 4 1
b 5 0
b 9 0
b 10 1
Using unique
要么不删除任何内容,要么只取 1 或 0 之一,而不保留我想要实现的开始和结束质量。有没有办法在没有循环的情况下做到这一点,也许使用dplyr
or forcats
?