使用mutate_if()将s3:posixct变量转换为R中的字符(chr)变量



我想知道为什么以下dplyr::mutate_if()不起作用?

  1. 在此处完成的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)

最新更新