簡體   English   中英

Xts轉換錯誤(與對象長度不匹配)

[英]Xts conversion error (do not match the length of object)

我將csv文件導入R,創建3x3數據框,並嘗試將數據框轉換為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

確切的錯誤消息是“ as.matrix.data.frame(x)中的錯誤:暗淡[產品12]與對象[14]的長度不匹配”

問題的根源是“卷”列。 沒有該列,它將起作用。 不幸的是無法弄清楚。 謝謝你的幫助!

這里有一個錯字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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM