【问题标题】:How to delete entire rows from a dataframe based on the date the data was collected?如何根据收集数据的日期从数据框中删除整行?
【发布时间】:2023-01-05 00:39:32
【问题描述】:

假设我有这个示例数据框(但要大得多)

df = data.frame(ID_number = c(111,111,111,22,22,33,33),
                date = c('2021-06-14','2021-06-12','2021-03-11',
                         '2021-05-20','2021-05-14',
                         '2018-04-20','2017-03-14'),
                answers = 1:7,
                sex = c('F','M','F','M','M','M','F') )

输出

  ID_number       date  answers sex
1       111 2021-06-14       1   F
2       111 2021-06-12       2   M
3       111 2021-03-11       3   F
4        22 2021-05-20       4   M
5        22 2021-05-14       5   M
6        33 2018-04-20       6   M
7        33 2017-03-14       7   F

我们可以看到有 7 个不同的成员,但是创建数据框的人犯了一个错误,将相同的 ID_number 分配给了成员 1,2 和 3。相同的 ID_number 分配给了成员 4 和 5,依此类推......

在数据框中有每个成员数据集合的数据,我希望只保留最早日期的成员。结果数据框看起来像这样

  ID_number       date   answers sex
1       111 2021-03-11       3   F
2        22 2021-05-14       5   M
3        33 2017-03-14       7   F

感谢帮助。

【问题讨论】:

    标签: r dataframe datetime


    【解决方案1】:

    你可以在 min 日期 filter group_by 像这样:

    library(dplyr)
    df %>%
      group_by(ID_number) %>%
      filter(date == min(date))
    #> # A tibble: 3 × 4
    #> # Groups:   ID_number [3]
    #>   ID_number date       answers sex  
    #>       <dbl> <chr>        <int> <chr>
    #> 1       111 2021-03-11       3 F    
    #> 2        22 2021-05-14       5 M    
    #> 3        33 2017-03-14       7 F
    

    创建于 2023-01-04 reprex v2.0.2

    【讨论】:

      【解决方案2】:

      slice_min

      library(dplyr)
      df %>% 
        group_by(ID_number) %>% 
        slice_min(date)
      

      在开发中。版本,您可以使用 .by 的内联分组:

      devtools::install_github("tidyverse/dplyr")
      df %>% 
        slice_min(date, .by = ID_number)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-07
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        • 2018-06-04
        • 2018-11-11
        • 1970-01-01
        • 2021-09-21
        相关资源
        最近更新 更多