R数据表与POSIXct上的截断

时间:2014-03-27 09:23:27

标签: r data.table posixct

无法弄清楚我在这里做错了什么。

require(data.table)
dt = data.table( ts=seq( ISOdate(2014,1,1), ISOdate(2014,1,2), by='hour') )
dt[, day:=trunc(ts, 'days') ]

在“日”栏中给我一个长度为9的列表?!

v = trunc( dt$ts, 'days' )

给我一​​个长度为25的矢量。

dt[, day.test:=v ]

再次给我一个长度为9的列表“day.test”?!

1 个答案:

答案 0 :(得分:5)

试试这个:

dt[, day:=as.POSIXct(trunc(ts, 'days')) ]

来自?data.table

   POSIXlt is not supported as a column type because it uses 40 bytes to
store a single datetime. Unexpected errors may occur if you manage to create
a column of type POSIXlt. Please see NEWS for 1.6.3, and IDateTime instead.