r语言 - dplyr/lubriting中的mutate_impl误差添加日期时间



使用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是一个"日期时间对象",但在您的情况下,您正在尝试通过整数。

希望它有帮助!

最新更新