将按小时分组的稀疏数据行合并在一起

时间:2018-08-04 08:41:45

标签: r

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列分组,但是我无法理解。

1 个答案:

答案 0 :(得分:1)

使用group_by中的summarise_alldplyr

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