r - 将一列中的 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 的第一行。
非常感谢您的帮助!
解决方案
使用 dplyr,这可以使用group_by
、coalesce
和来完成lag
,例如:
library(dplyr)
data %>% group_by(ID) %>% mutate(Date_first = coalesce(Date_first, lag(Date_last))) %>% ungroup()
推荐阅读
- go - 例行检查频道范围
- javascript - How to close modal and return value from flatlist when click on item in react native?
- c++ - 深拷贝具有自引用指针的类
- spring-boot - How to deal with ContraintViolationException and other Exceptions
- python - 为什么 select_dtypes 在这种情况下在熊猫中不起作用
- java - 如何提高内部其他 REST 调用的 REST 调用的性能
- qt - 如何在 Qt Creator 中将 Qdialog 设置为具有尽可能小的固定高度和扩展宽度?
- java - 为什么对象数组中的元素没有更新?
- python - 使用 facecolor 而非 edgecolor 将标签添加到线框图
- python - what is XLA_GPU and XLA_CPU for tensorflow