根据行位置范围对分组数据框进行子集

时间:2021-04-29 11:12:15

标签: r dataframe dplyr datatable

我有一个分组数据框,我希望为每个组(名称)保留给定范围内的行。例如,在第 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

谢谢,

2 个答案:

答案 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
相关问题