我是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"...
也许有人可以帮助我?!我想应该可以得到我的日期,但哪个功能有意义?
答案 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"