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

问题描述:

使用lubridate包我想添加秒(为示例的目的)在一个tibble的"POSIXct", "POSIXt"字段。dplyr/lubridate mutate_impl错误添加日期时间

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 

这是为什么?我很欣赏我可以计算几个小时,但我想知道我做错了什么。

附加点:

-I've试图as.Date,可以得到相同的错误。

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

Whyn't使用?

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

如果你想要小时添加到给定的日期,然后简单地使用Date_time + 2*60*60(即,2个小时内加入Date_time)。


此外?second明确表示,xsecond(x)是“日期时间对象”,但在你的情况,你试图传递一个整数。

希望它有帮助!