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
列分组,但是我无法理解。
答案 0 :(得分:1)
使用group_by
中的summarise_all
和dplyr
:
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