将数字变量转换为 POSIXct
convert numeric variable into POSIXct
我有一个包含值的变量
"时间间隔的开始,表示为从 1970 年 1 月 1 日 Unix 纪元开始经过的毫秒数(UTC)。"(根据数据源元数据)
这是头:
x$timeInt
[1] 1.388068e+12 1.388075e+12 1.388096e+12 1.388051e+12 1.388051e+12 1.388072e+12
所以我尝试将其转换为 POSIXct
as.POSIXct(x$timeInt, origin = '01-01-1970',tz='UTC')
但我得到了这个结果
[1] "43987-03-01 05:20:00 UTC" "43987-05-23 13:20:00 UTC" "43988-01-28 13:20:00 UTC" "43986-08-25 17:20:00 UTC"
[5] "43986-08-25 17:20:00 UTC" "43987-04-25 18:40:00 UTC"
如您所见,年份完全错误。我尝试使用其他原始格式,如“1970-01-01”,但结果是一样的。
我知道a数据是2013年12月取的。
你必须小心,这是以毫秒为单位的,所以:
x$timeInt <- x$timeInt/1000
然后是两种方法之一:
as.POSIXct(x$timeInt, origin = '1970-01-01',tz='UTC')
或
library(anytime)
anytime(x$timeInt)
#[1] "2013-12-26 15:26:40 CET" "2013-12-26 17:23:20 CET" "2013-12-26 23:13:20 CET" "2013-12-26 10:43:20 CET" "2013-12-26 10:43:20 CET"
#[6] "2013-12-26 16:33:20 CET"
我有一个包含值的变量 "时间间隔的开始,表示为从 1970 年 1 月 1 日 Unix 纪元开始经过的毫秒数(UTC)。"(根据数据源元数据)
这是头:
x$timeInt [1] 1.388068e+12 1.388075e+12 1.388096e+12 1.388051e+12 1.388051e+12 1.388072e+12
所以我尝试将其转换为 POSIXct
as.POSIXct(x$timeInt, origin = '01-01-1970',tz='UTC')
但我得到了这个结果
[1] "43987-03-01 05:20:00 UTC" "43987-05-23 13:20:00 UTC" "43988-01-28 13:20:00 UTC" "43986-08-25 17:20:00 UTC"
[5] "43986-08-25 17:20:00 UTC" "43987-04-25 18:40:00 UTC"
如您所见,年份完全错误。我尝试使用其他原始格式,如“1970-01-01”,但结果是一样的。 我知道a数据是2013年12月取的。
你必须小心,这是以毫秒为单位的,所以:
x$timeInt <- x$timeInt/1000
然后是两种方法之一:
as.POSIXct(x$timeInt, origin = '1970-01-01',tz='UTC')
或
library(anytime)
anytime(x$timeInt)
#[1] "2013-12-26 15:26:40 CET" "2013-12-26 17:23:20 CET" "2013-12-26 23:13:20 CET" "2013-12-26 10:43:20 CET" "2013-12-26 10:43:20 CET"
#[6] "2013-12-26 16:33:20 CET"