首页 > 解决方案 > 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

显然,这不起作用:(。谁能告诉我该怎么做?

标签: rdatetidyverse

解决方案


尝试这个。该函数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

推荐阅读