从单独的组件创建
有时你得到的不是单个字符串,而是分散在多列中的日期时间的各个组件。flights 数据就是这种情况:
flights %>% select(year, month, day, hour, minute) #> # A tibble: 336,776 × 5 #> year month day hour minute #>
要从这类输入创建日期/时间,对日期使用 make_date(),对日期时间使用 make_datetime():
flights %>% select(year, month, day, hour, minute) %>% mutate( departure = make_datetime(year, month, day, hour, minute) ) #> # A tibble: 336,776 × 6 #> year month day hour minute departure #>
让我们对 flights 中的四个时间列做同样的处理。这些时间以一种略显奇怪的格式表示,所以我们使用模运算来提取小时和分钟组件。一旦创建了日期时间变量,我就聚焦于本章其余部分将要探索的变量:
make_datetime_100 <- function(year, month, day, time) { make_datetime(year, month, day, time %/% 100, time %% 100) } flights_dt <- flights %>% filter(!is.na(dep_time), !is.na(arr_time)) %>