mutate_impl dplyr/lubridate 添加日期时间时出错

mutate_impl error in dplyr/lubridate add date time

使用 lubridate 包,我想将秒数(为了示例的目的)添加到 tibble 中的 "POSIXct", "POSIXt" 字段。

b <- structure(list(`"a"` = c("a", "a", "a", "a", "a"), Date_time = structure(c(1506694322, 
1506694270, 1506693970, 1506693897, 1506693849), class = c("POSIXct", 
"POSIXt"), tzone = "")), .Names = c("\"a\"", "Date_time"), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -5L))

b %>%
  mutate(tol_lower = Date_time - second(2),
         tol_lower = Date_time + second(30))

我收到错误:

Error in mutate_impl(.data, dots) : 'origin' must be supplied

这是为什么?我很感激我可以计算小时数,但我想知道我做错了什么。

加分:

-我试过as.Date,它给出了同样的错误。

-我可以直接加秒没有问题:tol_lower = Date_time - 2

为什么不用这个?

b %>% mutate(tol_lower = Date_time - 2,
             tol_upper = Date_time + 30)

如果您想在给定日期上增加小时数,则只需使用 Date_time + 2*60*60(即在 Date_time 上增加 2 小时)。


另外 ?second 清楚地说 second(x) 中的 x 是 "date-time object" 但在你的情况下你试图传递一个整数。

希望对您有所帮助!