2016-04-20 15 views
1

3x3データフレームを作成し、データフレームをxtsオブジェクトに変換しようとすると、csvファイルをRにインポートしています。しかし、エラーメッセージ "オブジェクトの長さに一致しません"が表示されます。どういうわけかXts変換エラー(オブジェクトの長さに一致しません)

のルート:

#DATSB <- fread("C:/Temp/GoogleDrive/R/temp.csv", select = c("DateTime","Last","Volume")) 
#that results in following dput() output: 
DATSB <- structure(list(DateTime = c("3/28/2016 20:37", "3/28/2016 20:36","3/28/2016 20:35"), Last = c(1221.7, 1221.8, 1221.9), Volume = c(14L,2L, 22L)), .Names = c("DateTime", "Last", "Volume"), row.names = c(NA,3L), class = "data.frame") 

setDF(DATSB) 
DATSB$DateTime <- strptime(DATSB$DateTime, format = "%m/%d/%Y %H:%M") 
DATSBxts <- as.xts(DATSB[, -2], order.by = as.Date(DATSB$DateTime, "%Y/%m/%d %H:%M")) 

    DateTime  Last  Volume 
1 3/28/2016 20:37 1221.7  14 
2 3/28/2016 20:36 1221.8  2 
3 3/28/2016 20:35 1221.9  22 

正確なエラーメッセージは、 " 薄暗くなり【製品12]オブジェクトの長さと一致しない[14] as.matrix.data.frameでのエラー(X)" であります問題は列のボリュームです。その列がなければ、それは動作します。残念ながらそれを理解することはできません。ご協力いただきありがとうございます!

答えて

2

ここに入力したDATSB[, -2]が問題なく修正されました。 XTSのための一般的なテーマは

xts(data[,-date_column], order.by = data[,date_column]) 
また

coredata(DATSBxts)index(DATSBxts)は役に立ち関数であり、ある

DATSBxts = xts(DATSB[, -1], order.by = DATSB[,1] ,dateFormat = "%Y/%m/%d %H:%M:%S");rev(DATSBxts) 


DATSBxts 
#     Last Volume 
#2016-03-28 20:35:00 1221.9  22 
#2016-03-28 20:36:00 1221.8  2 
#2016-03-28 20:37:00 1221.7  14 
関連する問題