我有一个分组数据框,我希望为每个组(名称)保留给定范围内的行。例如,在第 2 和第 3 个位置之间。
df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)
df
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
6 c 6
7 c 7
8 c 8
这里我想要这样的输出
name x
1 a 2
2 a 3
3 b 5
4 c 7
5 c 8
谢谢,
答案 0 :(得分:0)
我找到的解决方案是使用 dplyr::slice(2:3)
答案 1 :(得分:0)
首先是 group_by
name
,然后是索引 slice
中的 2:3
:
library(dplyr)
df %>%
group_by(name) %>%
slice(2:3)
# A tibble: 5 x 2
# Groups: name [3]
name x
<chr> <int>
1 a 2
2 a 3
3 b 5
4 c 7
5 c 8