我在动物园遇到了重复的索引警告/错误。我花了一些时间进行故障排除,它归结为以下数据/片段:
Lines = "Index,dbt,rh,dpt,wind.mph,gust.mph,wind.dir,voltage,klux,fc
2008-03-09 01:00:00,37.96,77.25,31.60,4.16,5.39,247,0.00,28.283,2643.28
2008-03-09 02:00:00,37.20,77.25,30.90,0.00,0.43,244,0.00,28.283,2643.28"
x <- read.table(header=T,text=Lines,sep=",")
library(zoo)
z = zoo(x[,2:10],as.POSIXct(x$Index))
如果我执行上述操作,我收到以下警告:
Warning message:
In zoo(x[, 2:10], as.POSIXct(x$Index)) :
some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique
我想知道数据/索引有什么问题。它们实际上是不同的。
但是,以下命令:
library(xts)
make.index.unique(index(z))
给出了一个令人费解的结果:
[1] "2008-03-09 01:00:00 MST" "2008-03-09 01:00:00 MST"
上面的命令是否只是使indeces重复?任何人都可以告诉我它是如何工作的吗?
答案 0 :(得分:3)
问题不在于zoo
,而在于as.POSIXct
的参数
查看as.POSIXct(x$Index)
,您会看到它没有提供您需要的结果。
给as.POSIXct
个时区会有所帮助。
比较:
as.POSIXct(x$Index)
# [1] "2008-03-09 01:00:00 EST" "2008-03-09 01:00:00 EST"
as.POSIXct(x$Index, tz = "GMT")
# [1] "2008-03-09 01:00:00 GMT" "2008-03-09 02:00:00 GMT"