【问题标题】:Merge sparse data rows together grouped by the hour [duplicate]将按小时分组的稀疏数据行合并在一起[重复]
【发布时间】:2018-08-04 08:41:45
【问题描述】:

一个 data.frame 包含 2 列的值。每小时两列都包含一个值和一个 NA,但从不包含两个值。

我正在寻找一种方法来合并具有相同小时-日-月-年组合的两行。示例:

# before
col1 col2 hour day month year
3    NA   1    3   2     2018  
NA   4    1    3   2     2018


#after
col1 col2 hour day month year
3    4    1    3   2     2018  

我尝试使用plyr 库中的方法(ddply、粘贴)并按date 列分组,但我无法理解它。

【问题讨论】:

    标签: r


    【解决方案1】:

    使用来自dplyrgroup_bysummarise_all

    library(dplyr)
    
    df %>%
      group_by(year, month, day, hour) %>%
      summarise_all(sum, na.rm=TRUE)
    
    # A tibble: 2 x 6
    # Groups:   year, month, day [2]
       year month   day  hour  col1  col2
      <int> <int> <int> <int> <int> <int>
    1  2018     2     3     1     3     4
    2  2018     4     3     1     8     9
    

    数据:

    df
      col1 col2 hour day month year
    1    3   NA    1   3     2 2018
    2   NA    4    1   3     2 2018
    3    8   NA    1   3     4 2018
    4   NA    9    1   3     4 2018
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多