r - 如何按季度对数据框中的行进行分组?

标签 r dataframe

我有一个包含 213 行和 2 列的数据框(日期文章)。最终目标是通过按季度对 Date 进行分组来减少行数。显然,我希望相应地合并 Article 列中的文本。

让我们举个例子。

Date <- c("2000-01-05", "2000-02-03", "2000-03-02", "2000-03-30", "2000-04-13", "2000-05-11", "2000-06-08", "2000-07-06", "2000-09-14", "2000-10-05", "2000-10-19", "2000-11-02", "2000-12-14")
Article <- c("Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text","Long Text")

Date <- data.frame(Date)
Article <- data.frame(Article)

df <- cbind(Date, Article)

#Dataframe

Date           Article
1  2000-01-05 Long Text
2  2000-02-03 Long Text
3  2000-03-02 Long Text
4  2000-03-30 Long Text
5  2000-04-13 Long Text
6  2000-05-11 Long Text
7  2000-06-08 Long Text
8  2000-07-06 Long Text
9  2000-09-14 Long Text
10 2000-10-05 Long Text
11 2000-10-19 Long Text
12 2000-11-02 Long Text
13 2000-12-14 Long Text

我想获得的最终输出如下:

Date         Article
1  2000 Q1   Long Text, Long Text, Long Text, Long Text
2  2000 Q2   Long Text, Long Text, Long Text
3  2000 Q3   Long Text, Long Text
4  2000 Q4   Long Text, Long Text, Long Text, Long Text

从本质上讲,行已经按季度以及相应的文本分组在一起。

我试着环顾四周,但不幸的是,我不知道该怎么做。

谁能帮帮我?

谢谢!

最佳答案

一个 dplyrlubridate 选项可以是:

df %>%
 group_by(Date = as.character(lubridate::quarter(ymd(Date), with_year = TRUE))) %>%
 summarise(Article = paste0(Article, collapse = ",")) 

  Date   Article                                
  <chr>  <chr>                                  
1 2000.1 Long Text,Long Text,Long Text,Long Text
2 2000.2 Long Text,Long Text,Long Text          
3 2000.3 Long Text,Long Text                    
4 2000.4 Long Text,Long Text,Long Text,Long Text

关于r - 如何按季度对数据框中的行进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462458/

相关文章:

r - 安装 R 包 Ubuntu 22.04.1 LTE 时的包 libcurl4-openssl-dev 问题

r - tidyr::pivot_longer() 函数不适用于将列从逻辑转换为整数的 tibble

python - 将 numpy 数组存储在 pandas 数据框的多个单元格中(Python)

python - Pandas DataFrame 使用另一个 DataFrame 列过滤行

r - 如何 'reverse melt' 一个 data.frame?

r - 如果文本字符串包含某些内容,则在 R 中返回某些内容

r - data.table 错误 : lapply on . SD 在使用 get() 时对列重新排序。可能的解决方法?

Rmarkdown错误: "! Paragraph ended before\@fileswith@ptions was complete"

python - 如何快速将值从一个数据帧复制到另一个数据帧

python - Pandas 如何找到单元格的位置以字符串开头