我只想转换文本格式的日期,否则不转换。我需要这个,因为有时我以日期格式获取数据;有时以文本格式。这是我的玩具数据。
library(tidyverse)
library(lubridate)
toy_df <- tibble(date = seq(as.Date("2021/1/1"), as.Date("2021/1/5"), "days")) %>%
mutate(date = as.character(date))
当我尝试这个时,它不起作用。
toy_df %>% mutate(date = if_else(is.Date(date), date, ymd(date)))
我应该如何解决这个问题?
答案 0 :(得分:2)
is.Date
返回一个值,因此使用 if
/else
而不是矢量化 ifelse
/if_else
-
library(tidyverse)
library(lubridate)
toy_df %>% mutate(date = if(is.Date(date)) date else ymd(date))
# date
# <date>
#1 2021-01-01
#2 2021-01-02
#3 2021-01-03
#4 2021-01-04
#5 2021-01-05
如果您的数据格式相同,则无需检查条件。
toy_df %>% mutate(date = ymd(date))