2016-05-23 18 views
0

注:解決掉的評論在下面R錯誤:指數不按遞增順序

試圖把一個data.frame到XTS在發現here回答以下時,我發現了以下錯誤。

Error in .xts(DA[, 3:6], index = as.POSIXct(DAINDEX, format = "%m/%d/%Y %H:%M:%S", : index is not in increasing order

我一直未能找到這個錯誤或如何解決它,所以任何幫助,將不勝感激。

數據爲每日S & P 500採用逗號分隔格式,包含以下列:「日期」「時間」「打開」「高」「低」「關閉」。

下面是代碼:

DA <- read.csv("SNP.csv", header = TRUE, stringsAsFactors = FALSE) 
DAINDEX <- paste(DA$Date, DA$Time, sep = " ") 
Data.hist <- .xts(DA[,3:6], index = as.POSIXct(DAINDEX, format = "%m/%d/%Y %H:%M:%S", tzone = "GMT")) 

按照要求,數據

structure(list(Date = c("5/20/2016", "5/19/2016", "5/18/2016", 
"5/17/2016", "5/16/2016", "5/13/2016"), Time = c("0:00:00", "0:00:00", 
"0:00:00", "0:00:00", "0:00:00", "0:00:00"), Open = c(2041.880005, 
2044.209961, 2044.380005, 2065.040039, 2046.530029, 2062.5), 
High = c(2058.350098, 2044.209961, 2060.610107, 2065.689941, 
2071.879883, 2066.790039), Low = c(2041.880005, 2025.910034, 
2034.48999, 2040.819946, 2046.530029, 2043.130005), Close = c(2052.320068, 
2040.040039, 2047.630005, 2047.209961, 2066.659912, 2046.609985 
)), .Names = c("Date", "Time", "Open", "High", "Low", "Close" 
), row.names = c(NA, 6L), class = "data.frame") 

上面的一些行是dput(head(DA))

+1

請問您能在這裏提供幾行數據嗎?使用'dput(head(DA))'... –

+0

@MartinDabbelJuSmelter會盡快回到我的電腦! – youjustreadthis

+0

@MartinDabbelJuSmelter請參閱編輯的問題。 實際上使用dput讓我意識到數據是從最新到最舊而非副verca排序的。如果你想請留下一個答案,以便我可以接受它。非常感謝你的幫助! – youjustreadthis

回答

0

最簡單的事情輸出到do是使用常規xts構造函數而不是.xts。它將檢查索引是否正確排序,並在必要時對索引和數據進行排序。

Data.hist <- xts(DA[,3:6], as.POSIXct(DAINDEX, "%m/%d/%Y %H:%M:%S", "GMT"))