首页 > 解决方案 > 如何按日期范围分组

问题描述

我有一个数据框,其中包含日期,一些文本位于单独的列中

我想将日期在特定范围内的任何行粘贴在一起

输入

 Date           Text
    12-01-2001    sometext
    15-01-2001    sometext2
    23-02-2015    Row3_Text
    28-02-2015    Row4_Text

预期结果

Date       Text
12-01-2001 sometextsometext2
23-02-2015 Row3_TextRow4_Text

尝试 1

df<-df %>% 
  group_by(Date) %>% 
  summarise_all(.funs = function(x) paste(unique(c(dplyr::lag(x, default = NULL), x)), collapse = ":"))

问题

如何创建要分组的日期范围(例如天数,例如 10 天)。我确定有一种润滑方式可以做到这一点,但我无法弄清楚

标签: r

解决方案


假设您想按月分组并在本月有第一个发生日期:

df1 %>% 
  group_by(month = lubridate::month(Date)) %>% # create group by month
  summarise(Date = min(Date),
    Text = paste0(Text, collapse = " ")) %>% # paste values together with a space
  select(-month) # drop the month group

# A tibble: 2 x 2
  Date       Text               
  <chr>      <chr>              
1 12-01-2001 sometext sometext2 
2 23-02-2015 Row3_Text Row4_Text

推荐阅读