使用 select 函数、管道和润滑

Using select function, piping and lubridate

我正在尝试使用 lubridate 包以及 tidyverse 包中提供的 select 函数和管道来查看日期中的天数。但是,我无法在使用 select 时让它工作。我想我可以使用 select 而不是 $ 运算符。这里有什么问题?

library(tidyverse)
library(lubridate)
> df <- data.frame(arrivals = c("2015-11-11","2015-11-12"))
> df$arrivals %>% day()
[1] 11 12
> df %>% select(arrivals) %>% day()
Error in as.POSIXlt.default(x, tz = tz(x)) : 
  do not know how to convert 'x' to class “POSIXlt”

df$arrivals returns 一个向量,而 df %>% select(arrivals) returns 一个 data.frame 显然 lubridate 无法使用。

使用 mutate 函数给出以下结果:

> df %>% mutate(day(arrivals))
    arrivals day(arrivals)
1 2015-11-11            11
2 2015-11-12            12