R舍入数据表中的PosixCT变量

时间:2017-11-21 00:14:33

标签: r data.table posixct

以下代码使用POSIXct格式创建一个包含一个变量timeStamp的10行数据表。

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")]

下面的代码行完成了我想要的(在本例中为圆形)但在数据表中不起作用。

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

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

1 个答案:

答案 0 :(得分:4)

来自?round.POSIXt

  

     

“POSIXlt”或“Date”类的对象。

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

因此,您需要将round函数包含在as.POSIXct()内,以便将其恢复为POSIXct

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