数据表中的 R 轮 PosixCT 变量

Jer*_*ryN 4 r posixct data.table

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

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

我想将时间戳舍入到最近的分钟。

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

dt[, timestamp2 := round(timeStamp, "mins")]
Run Code Online (Sandbox Code Playgroud)

下面的代码行做了我想要的(在这个例子中四舍五入),但在数据表中不起作用。

timestamp2 <- round(dt$timeStamp, "mins")
Run Code Online (Sandbox Code Playgroud)

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

Sym*_*xAU 5

来自?round.POSIXt

价值

类“POSIXlt”或“日期”的对象。

这意味着对象round上的结果POSIX是一个POSIXlt对象。

因此,您需要将您的round功能包装在里面as.POSIXct()以将其恢复POSIXct

dt[, timestamp2 := as.POSIXct(round(timeStamp, "mins"))]
Run Code Online (Sandbox Code Playgroud)