【问题标题】:Subset a grouped data frame based on range of row position根据行位置范围对分组数据框进行子集
【发布时间】:2021-07-22 18:06:46
【问题描述】:

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

谢谢,

【问题讨论】:

    标签: r dataframe dplyr datatable


    【解决方案1】:

    我找到的解决方案是使用dplyr::slice(2:3)

    【讨论】:

      【解决方案2】:

      首先,group_byname,然后是来自索引 2:3slice

      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
      

      【讨论】:

        猜你喜欢
        • 2019-10-16
        • 2013-10-25
        • 2013-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-24
        • 2019-01-30
        • 2013-08-15
        相关资源
        最近更新 更多