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".
这意味着 round
在 POSIX
对象上的结果是 POSIXlt
对象。
因此您需要将 round
函数包装在 as.POSIXct()
中以使其返回 POSIXct
dt[, timestamp2 := as.POSIXct(round(timeStamp, "mins"))]
以下代码创建一个 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".
这意味着 round
在 POSIX
对象上的结果是 POSIXlt
对象。
因此您需要将 round
函数包装在 as.POSIXct()
中以使其返回 POSIXct
dt[, timestamp2 := as.POSIXct(round(timeStamp, "mins"))]