2016-08-12 165 views
0

我有一些整数(时间戳),我想将它们转换为时间间隔(时间差)。我如何在R中做到这一点?R - 将时间戳(int)转换为时间间隔

事情是这样的:

strptime(37998530.34, format="%d %H:%M") 

该R代码返回错误:

difftime(37998530.34, 0) 

在Python我可以使用此代码:

datetime.timedelta(0, 37998530.34) 

,其结果是:

datetime.timedelta(439, 68930, 340000) 
439 days, 19:08:50.340000 

谢谢!

回答

1

在R中,您需要指定日期转换的来源。假设你的值的秒数使用此功能:

as.POSIXlt(37998530.34, origin="1970-01-01") 
#[1] "1971-03-16 14:08:50 EST" 

as.POSIXlt函数也有来指定所需的时区(TZ =)

下面的代码的选项:

difftime(as.POSIXlt(37998530.34, origin="1970-01-01"), as.POSIXlt(0, origin="1970-01-01"), units=c('days')) 

有结果:

Time difference of 439.8 days 
+0

谢谢!我将最终解决方案添加到您的答案中。 – ragesz