此问题已在此处有答案:
How to use dplyr's coalesce function with group_by() to create one row per person with all values filled in?(2个答案)
Handling NA values in apply and unique(2个答案)
22小时前关闭
我正在使用r,我遇到的问题是,我希望每个id和date都有唯一的time 1和time 2值,但对于某些行,它们是分开的。我想通过组合列的值来合并组合某些列中具有相同值的行。
具体来说,如果“id”和“date”匹配,我想将两行减少为一行。
id <- c('A', 'B', 'C', 'B', 'C'); date <- c('2023-10-09', "2023-10-10", "2023-10-10", "2023-10-10", "2023-10-10")
time1 <- c('2023-10-09 05:55:55', '2023-10-10 05:55:55', NA, NA, '2023-10-10 10:55:55')
time2 <- c('2023-10-09 06:10:55', NA, '2023-10-10 20:55:55', '2023-10-10 20:59:55', NA)
df <- data.frame(id, date, time1, time2)
> df
id date time1 time2
1 A 2023-10-09 2023-10-09 05:55:55 2023-10-09 06:10:55
2 B 2023-10-10 2023-10-10 05:55:55 <NA>
3 C 2023-10-10 <NA> 2023-10-10 20:55:55
4 B 2023-10-10 <NA> 2023-10-10 20:59:55
我想要的是
id <- c('A', 'B', 'C'); date <- c('2023-10-09', "2023-10-10", "2023-10-10")
time1 <- c('2023-10-09 05:55:55', '2023-10-10 05:55:55','2023-10-10 10:55:55')
time2 <- c('2023-10-09 06:10:55', '2023-10-10 20:55:55', '2023-10-10 20:59:55')
df <- data.frame(id, date, time1, time2)
> df
id date time1 time2
1 A 2023-10-09 2023-10-09 05:55:55 2023-10-09 06:10:55
2 B 2023-10-10 2023-10-10 05:55:55 2023-10-10 20:55:55
3 C 2023-10-10 2023-10-10 10:55:55 2023-10-10 20:59:55
任何输入都将有帮助!
1条答案
按热度按时间7jmck4yq1#
尝试
创建于2023-10-11使用reprex v2.0.2