首页 > 解决方案 > 将一列中的 NA 替换为上一行另一列的值

问题描述

我想用上面行中的日期替换我的 NA 日期,该日期位于另一列中。我的数据如下所示:

ID  Date_first  Date_last 
1   2020-01-01  2020-05-21
1   2020-05-21  2020-09-15
2   2019-06-01  2019-10-30
2   NA          2020-02-06

我想将 ID 2 的 Date_first 中的 NA 值替换为上一行(2019-10-30)中相同 ID 的 Date_last。Date_first NA 仅出现在 ID 的第二行,它永远不会出现在 ID 的第一行。

非常感谢您的帮助!

标签: r

解决方案


使用 dplyr,这可以使用group_bycoalesce和来完成lag,例如:

library(dplyr)

data %>% group_by(ID) %>% mutate(Date_first = coalesce(Date_first, lag(Date_last))) %>% ungroup()

推荐阅读