【发布时间】:2017-05-19 18:18:35
【问题描述】:
当从 data.frame 创建 xtsobject 时,我似乎丢失了一些数据(大约 3000 个数据丢失超过 33 000)。
我的数据集如下:(时间为日-月-年,欧盟格式)
> head(mesdonnees)
time value
1 05-03-2006 04:07 NA
2 05-03-2006 04:17 NA
3 05-03-2006 04:27 NA
4 05-03-2006 04:37 NA
5 05-03-2006 04:47 NA
6 05-03-2006 04:57 NA
由于格式的原因,我不得不提取日期的不同部分(至少我无法让as.POSIXct 使用这种格式)。
这是我的做法:
# Extract characters and define as S....
Syear <- substr(mesdonnees$time, 7,10)
Smonth <- substr(mesdonnees$time, 4,5)
Sday <- substr(mesdonnees$time, 1, 2)
#Gather all parts and use "-" as sep
datetext <- paste(Syear, Smonth, Sday, sep="-")
#define format of each part of the string
formatdate<-as.POSIXct(datetext, format="%Y-%m-%d", tz = "GMT")
然后我尝试创建我的xtswith...
xtsdata <- xts(mesdonnees$value, order.by = formatdate, tz = "GMT")
...但是这样做时我得到了一些非常奇怪的结果:第一个值是 1900
> head(xtsdata)
[,1]
1900-01-04 NA
2006-03-05 NA
2006-03-05 NA
2006-03-05 NA
2006-03-05 NA
2006-03-05 NA
许多 (3000) 日期没有保留:
> xtsdata[30225:30233,]
[,1]
2006-12-31 0
2006-12-31 0
2006-12-31 0
2006-12-31 0
<NA> NA
<NA> NA
<NA> NA
<NA> NA
<NA> NA
查看data.frame和xts中应该是同一行的内容时,我可以看到这些行是偏移的(我在xts对象创建中更改了日期格式):
> mesdonnees[25617,]
time value
25617 08-11-2006 23:51 0
> xtsdata[25617,]
[,1]
2006-11-25 0.27
我的数据是怎么偏移的?我尝试更改tz,但它不影响它。我使用dyplr package 删除了所有重复项,它也不影响 xts 结果。感谢您的帮助!
将我的 xts 代码更改为 Joshua 建议的代码后:
xtsdata <- xts(mesdonnees$value, order.by = as.POSIXct(mesdonnees$time, tz = "GMT", format = "%d-%m-%Y %H:%M"))
...我的数据在“最后”部分正确显示,但我现在遇到了不同的问题。前2300条数据做时显示如下结果(使用xtsdata[1500,](或任何
> view(xtsdata):
0206-06-30 23:08:00 NA
0206-06-30 23:18:00 NA
0206-06-30 23:28:00 NA
1900-01-04 12:00:00 NA
2006-03-05 04:07:00 NA
2006-03-05 04:17:00 NA
我之前注意到这个错误,并认为这是由于日期格式造成的;也许不是?另外,在查看xtsdata 时,我在同一行没有得到相同的结果(最后一行是正确的想法):
> mesdonnees[2360,]
time value
2360 23-03-2006 03:09 NA
> xtsdata[2360,]
[,1]
2006-03-05 09:07:00 NA
根据要求:
> str(mesdonnees)
'data.frame': 32556 obs. of 2 variables:
$ time : chr "05-03-2006 04:07" "05-03-2006 04:17" "05-03-2006 04:27" "05-03-2006 04:37" ...
$ value: num NA NA NA NA NA NA NA NA NA NA ...
如果需要的话:
An ‘xts’ object on 0206-06-01 00:09:00/2006-12-31 23:29:00 containing:
Data: num [1:32556, 1] NA NA NA NA NA NA NA NA NA NA ...
Indexed by objects of class: [POSIXct,POSIXt] TZ: GMT
xts Attributes:
NULL
【问题讨论】:
-
请将
str(mesdonnees)的输出编辑成您的问题。