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。
来自?round.POSIXt:
价值
类“POSIXlt”或“日期”的对象。
这意味着对象round上的结果POSIX是一个POSIXlt对象。
因此,您需要将您的round功能包装在里面as.POSIXct()以将其恢复POSIXct
dt[, timestamp2 := as.POSIXct(round(timeStamp, "mins"))]
Run Code Online (Sandbox Code Playgroud)