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