在timedata中转换值

时间:2016-11-29 08:07:47

标签: r datetime time

我是R的新手,现在我正努力转换我的时间数据。

我有一个值列表,应该是每日数据(01 / 012007-31 / 12/2015)

str(timedata)
num [1:3103(1d)] 733043 733044 733045 733046 733047 ...

我想阅读每日日期01/01/07 02/01/07 ....

我尝试使用函数

转换它
as.POSIXct(timedata, origin = "2007-01-01", tz = "GMT")

但结果是错误的:

"2007-01-09 11:39:08 GMT" "2007-01-09 11:39:09 GMT" "2007-01-09 11:39:10 GMT" 
"2007-01-09 11:39:11 GMT" "2007-01-09 11:39:12 GMT"...
也许有人可以帮助我?!我想应该可以得到我的日期,但哪个功能有意义?

1 个答案:

答案 0 :(得分:0)

这给出了从2007年1月1日到2015年12月31日的日期向量:

 tsD <- seq.Date("2007-01-01", "2015-12-31")

您也可以将该向量强制转换为日期。但要这样做,您需要为数据使用正确的来源,这似乎是Lotus 1-2-3开发人员选择的错误开始日期,并且由Microsoft延续:

 tsD <- as.Date(my.timedata, origin="0000-01-01")

我实际上不知道如何做到这一步。因此,我将从这些值中减去1以获得更正的日期系列。阅读?as.Date

> tsD
[1] "2007-01-02" "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-06"

如果您希望将日期显示为&#39; dd / mm / yyyy&#39;您需要阅读?strptime中有关格式化字符串的内容,但请使用具有Date方法的通用format函数:

> format(tsD, format="%d-%m-%Y")
[1] "02-01-2007" "03-01-2007" "04-01-2007" "05-01-2007" "06-01-2007"