使用选择功能,管道和lubridate

问题描述:

我试图使用lubridate包与tidyverse包中提供的选择功能和管道查看日期的日期。但是,使用select时我无法使用它。我想我可以使用select而不是使用$运营商。这里有什么问题?使用选择功能,管道和lubridate

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返回一个矢量,而df %>% select(arrivals)返回data.frame其lubridate显然无法工作。

使用mutate函数,而不是给出如下:

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