R轮数据中的PosixCT变量table

R round PosixCT variable in a data table

以下代码创建一个 10 行数据 table,其中包含一个变量 timeStamp,采用 POSIXct 格式。

library(data.table)
dt <- data.table(timeStamp = seq( as.POSIXct("2017-07-01 14:51:50"), by=60, len=10))

我想将 timeStamp 舍入到最接近的分钟。

此命令在 timeStamp2 的每一行中放置一个列表,而不是修改后的 POSIXct 变量。

dt[, timestamp2 := round(timeStamp, "mins")]

下面的代码行可以满足我的要求(在此示例中四舍五入),但在数据 table 中不起作用。

timestamp2 <- round(dt$timeStamp, "mins")

我正在使用 data.table 版本 1.10.4-3 和 MRAN R 版本 3.4.1。

来自?round.POSIXt

Value

An object of class "POSIXlt" or "Date".

这意味着 roundPOSIX 对象上的结果是 POSIXlt 对象。

因此您需要将 round 函数包装在 as.POSIXct() 中以使其返回 POSIXct

dt[, timestamp2 := as.POSIXct(round(timeStamp, "mins"))]