如何使用R添加毫秒到日期类型?

时间:2014-07-28 14:51:35

标签: r datetime unix-timestamp milliseconds

我的数据框状态如下:

   sg           date_time      tick_count
1      4 2014-07-24 11:02:02          0
2      4 2014-07-24 11:02:02          6
3      4 2014-07-24 11:02:02         19
4      4 2014-07-24 11:02:02         11
5      4 2014-07-24 11:02:02         15
6      4 2014-07-24 11:02:02         17
7      4 2014-07-24 11:02:02         29
8      4 2014-07-24 11:02:02         24
9      4 2014-07-24 11:02:02         38
10     < 2014-07-24 11:02:02         30
11     < 2014-07-24 11:02:02         34
12     < 2014-07-24 11:02:02         40
13     < 2014-07-24 11:02:02         41
14     < 2014-07-24 11:02:02         42
15     < 2014-07-24 11:02:02         47

列tick_count的单位是100毫秒。我需要在date_time上添加tick_count时间来创建一个新的时间列。

我将date_time转换为unix时间戳,然后加上tick_count / 10:

newtime <- as.numeric(as.POSIXct(status$date_time, tz="Finland/Helsinki")+status$tick_count/10)

但结果完全是第二个:

head(newtime)
[1] 1406188922 1406188923 1406188924 1406188923 1406188924 1406188924

我该怎么做以毫秒显示时间?

1 个答案:

答案 0 :(得分:5)

它只是&#34;只是&#34;显示问题。使用

options("digits.secs"=6)

看到完全精确。

完整示例:

R> options("digits.secs"=0)    # reset
R> tt <- ISOdatetime(2014,7,28,10,11,12)
R> tt
[1] "2014-07-28 10:11:12 CDT"
R> tt <- tt + 1e-5
R> tt
[1] "2014-07-28 10:11:12 CDT"
R> options("digits.secs"=6)    # full precision
R> tt
[1] "2014-07-28 10:11:12.00001 CDT"
R>