我有一个大型数据集,它有重复的时间(行),我想合并两行列中的数据。数据如下所示:
date P1 PT1 P2 PT2 P3 PT3
5/5/2011@11:40 NA NA NA NA 9.4 10.1
5/5/2011@11:40 5.6 10.2 8.5 10.1 NA NA
我想了解一下
date P1 PT1 P2 PT2 P3 PT3
5/5/2011@11:40 5.6 10.2 8.5 10.1 9.4 10.1
我的数据集是 10 年的 10 分钟数据,重复有些随机。添加了 @
符号以正确显示。
我试过 rbind
和 rbind.row.names
都无济于事。
谢谢!
最佳答案
您可以使用 dplyr 中的 summarize()
函数。以下将起作用,但它不检查重复项,它只取每个日期的最大值。
library(dplyr)
df <- tribble(~date, ~P1, ~PT1, ~P2, ~PT2, ~P3, ~PT3,
"5/5/2011@11:40", NA, NA, NA, NA, 9.4, 10.1,
"5/5/2011@11:40", 5.6, 10.2, 8.5, 10.1, NA, NA
)
df %>%
group_by(date) %>%
summarize(across(starts_with("P"), max, na.rm = TRUE))
换句话说,如果您确定您的数据包含或者一个数字或者 NA
,那么它就可以工作。
关于R函数根据重复时间组合行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68924687/