我有一些需要在R中使用的MATLAB序列号,但是我不得不将它们转换为正常日期。
Matlab:
datestr(733038.6)
ans =
27-Dec-2006 14:24:00
您可以看到它给出了日期和时间。
Now we try in R:
Matlab2Rdate <- function(val) as.Date(val - 1, origin = '0000-01-01')
> Matlab2Rdate(733038.6)
[1] "2006-12-27"
它只给出日期,但我还需要时间?任何的想法
诀窍是Matlab使用虚构的参考日期“ 0000年1月1日”来计算其日期号。R中“ POSIXct”类的时间起点是'1970-01-01 00:00.00 UTC'。您可以在此处阅读有关不同系统如何处理日期的信息。
转换之前,您需要考虑从一种格式到另一种格式的引用差异。的POSIX手册包含这样的例子。这是我的输出:
> val<-733038.6
> as.POSIXct((val - 719529)*86400, origin = "1970-01-01", tz = "UTC")
[1] "2006-12-27 14:23:59 UTC"
其中719529是Matlab的datenum中的“ 1970-01-01 00:00.00 UTC”,而86400是标准UTC日中的秒数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句