【发布时间】:2020-12-02 04:13:36
【问题描述】:
我有一个如下所示的数据框
id date from to type
<chr> <date> <date> <date> <chr>
1 2011-02-21 2011-01-01 2011-12-31 NA
2 2013-03-11 2013-01-01 2013-12-31 NA
3 2015-12-31 2015-01-01 2015-12-31 last
4 NA NA NA NA
5 NA NA NA NA
我想计算我们可以向后或向前移动日期的范围。
我编写了以下代码,它适用于Non-NA 场景,如下所示
data %>%
mutate(shift_back_max = (date - from) / ddays(1),
shift_forward_max = (to - date) / ddays(1)) %>%
data[c("shift_back_max", "shift_forward_max")][is.na(data[c("shift_back_max", "shift_forward_max")])] <- 30 # error is here with the way I am replacing `NA` with 30
我猜我面临的问题是在 %>% 操作任务期间替换 NA。
对于NA scenarios,我想指定自定义范围为 30-30。
您可以将NA 替换为 30(仅适用于这两列)或任何其他方法来键入 30 的 NA 也可以
我希望我的输出如下所示
【问题讨论】:
标签: r dataframe dplyr tidyr lubridate