【问题标题】:Merge rows which have the same date within a data frame [closed]合并数据框中具有相同日期的行[关闭]
【发布时间】:2018-03-13 22:28:47
【问题描述】:

我有一个data.frame如下:

         timestamp     index   negative  positive sentiment
            <dttm>      <dbl>    <dbl>    <dbl>     <dbl>
1 2015-10-29 15:00:10     0       11       10        -1
2 2015-10-29 17:26:48     0        1        5         4
3 2015-10-29 17:30:07     0       10       22        12
4 2015-10-29 20:13:22     0        5        6         1
5 2015-10-30 14:25:26     0        3        2        -1
6 2015-10-30 18:22:30     0       14       15         1
7 2015-10-31 14:16:00     0       10       23        13
8 2015-11-02 20:30:18     0       14        7        -7
9 2015-11-03 14:15:00     0        8       26        18
10 2015-11-03 16:52:30    0       12       34        22

我想知道是否有可能合并具有相同天数的行,以便我每天都有一个评分,因为我完全不知道如何解决这个问题,因为我什至不知道如何取消列出每个日期并编写一个仅合并相等日期的函数,因为每天的时间不同。我想获得一个具有以下形式的data.frame:

           timestamp     index   negative  positive sentiment                
            <dttm>      <dbl>    <dbl>    <dbl>     <dbl>
         1 2015-10-29     0       27       43        16
         2 2015-10-30     0        3        2        -1
         3 2015-10-31     0       17       17         0
         4 2015-11-02     0       14        7        -7
         5 2015-11-03     0       20       60        40

有没有可能绕过这个结果?如有任何提示,我将不胜感激。

【问题讨论】:

  • 查看dplyr 包中的group_by()summarise() 函数。或使用 by = 参数的 data.table 包。

标签: r date aggregate


【解决方案1】:

您可以使用aggregate() 来执行此操作。在此之前,您需要表明它应该根据日期进行排序,而忽略确切的时间点。

我假设您将数据存储为df

aggregate(df[ ,2:5], FUN="sum", by=list(as.Date(df$timestamp, "%Y-%m-%d")))

【讨论】:

  • 非常感谢,结果完美
猜你喜欢
  • 1970-01-01
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
相关资源
最近更新 更多