r - r:在特定条件下将日期添加到日期变量
问题描述
我试图在to
-variable 中添加一天 - 但前提from
是没有丢失:
df <- data.frame(from = c("2020-01-01", "2020-02-01", ""),
to = c("2020-01-05", "2020-02-20", "2020-03-04"))
df <- df %>% mutate(
from = as.Date(from),
to = as.Date(to),
to = ifelse(!is.na(from), to + 1, to)
)
df
显然,这不起作用:(。谁能告诉我该怎么做?
解决方案
尝试这个。该函数ifelse()
用于将日期转换为数字。相反,您可以使用if_else()
from dplyr
。这里的代码:
#Data
df <- data.frame(from = c("2020-01-01", "2020-02-01", ""),
to = c("2020-01-05", "2020-02-20", "2020-03-04"))
#Variables
df <- df %>% mutate(
from = as.Date(from),
to = as.Date(to),
to = if_else(!is.na(from), to + 1, to)
)
#Output
df
输出:
df
from to
1 2020-01-01 2020-01-06
2 2020-02-01 2020-02-21
3 <NA> 2020-03-04
推荐阅读
- javascript - 为什么这个promise会解析两次,一次是正常解析,一次是promise.all?
- python - Python 中的 Turtle 程序因堆栈溢出而崩溃
- python - 多线程应用程序中的 _wait_for_tstate_lock 错误
- java - 球衣注入 AbstractBinder 没有调用配置
- c - 仅在删除链表的第一个节点时收到“双重释放或损坏”
- python - 在 PyQt5 中为方法添加进度条
- javascript - 为什么在这个 tensorflowjs 代码中 chrome 给出了错误的输出而 firefox 给出了正确的输出?
- javascript - JS中的批量异步请求
- angular - 如何以角度返回订阅
- django - 无法连接到服务器:连接被拒绝 (0x0000274D/10061) - 远程服务器上的 PostgreSQL