我想知道为什么以下dplyr::mutate_if()
不起作用?
- 在此处完成的
S3: POSIXct
格式的日期创建flights_df
flights <- nycflights13::flights make_datetime_100 <- function(year, month, day, time) { make_datetime(year, month, day, time %/% 100, time %% 100) } flights_df <- flights %>% sample_n(100) %>% filter(!is.na(dep_time), !is.na(arr_time)) %>% mutate( dep_time = make_datetime_100(year, month, day, dep_time), arr_time = make_datetime_100(year, month, day, arr_time), sched_dep_time = make_datetime_100(year, month, day, sched_dep_time), sched_arr_time = make_datetime_100(year, month, day, sched_arr_time)) %>% dplyr::select(origin, dest, ends_with("delay"), ends_with("time"))`
现在使用mutate_if()
将日期转换为字符,如下所示
flights_df %>% as_tibble() %>% mutate_if(is.Date, as.character)
您正在处理posixct/xt对象。
class(flights_df$arr_time[1])
[1] "POSIXct" "POSIXt"
如果您使用的是。
flights_df %>%
as_tibble() %>%
mutate_if(is.POSIXct, as.character)