2012-07-19 1 views
2

와 함께 실패 read.zoo 작동하지만 다음 as.xts이 두 라인, "현재 지원되지 않는 데이터 형식"나는 매일 바 csv 파일을했습니다

"datestamp","Open","High","Low","Close","Volume" 
"2012-07-02",79.862,79.9795,79.313,79.509,48455 

(즉, 파일하던 XTS했다 data.frame로 변환 된 후, 나는이와 함께로드

) write.csv에게 전달 :

z=read.zoo(file='tmp.csv',sep=',',header=T,format = "%Y-%m-%d") 

그리고 print(z) 쇼로 괜찮 :

  Open High Low Close Volume 
2012-07-02 79.862 79.9795 79.313 79.509 48455 

그러나 as.xts(z)이 제공 : coredata.xts에서 오류 (X) :

‘zoo’ series from 2012-07-02 to 2012-07-02 
    Data:List of 5 
$ : num 79.9 
$ : num 80 
$ : num 79.3 
$ : num 79.5 
$ : int 48455 
- attr(*, "dim")= int [1:2] 1 5 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:5] "Open" "High" "Low" "Close" ... 
    Index: Date[1:1], format: "2012-07-02" 

내가 지금까지 확인했습니다 여기에 현재 지원되지 않는 데이터 유형

str(z) 출력 4 열은 num이고 하나의 열은 int입니다. 볼륨 열을 제거한 후에도 여전히 오류가 발생합니다. 그런데 그 오류 메시지가 무슨 말을 할 수 있겠습니까?

+2

당신이'getS3method ("as.xts", "동물원")을 시도 할 경우' 'xts (coredata (x), order.by = index (x), frequency = NULL)' 'xts'가 시계열 객체라는 것을 감안할 때 is 아마도 당신의 단일 관찰일까요? –

+0

@ sebastian-c 그렇다면 tmp.csv에서 줄을 복제하면 작업이로드됩니다 ... 그래서 내 진짜 질문은 xts 객체에 하나의 레코드 CSV 파일을로드하는 방법이어야합니다. –

답변

2

Sebastian은 의견에서 지적했듯이 문제는 단일 행에 있습니다. 특히 coredata는 두 개 이상의 행이있을 때 read.zoo가 단일 행을 읽을 때 목록이지만 다른 행렬 (행렬?)입니다.

나는 다음과 read.zoo에 대한 호출을 대체하고, 그것을 잘 작동 여부를 1 또는 2 + 행 :

d=read.table(fname,sep=',',header=T) 
x=as.xts(subset(d,select=-datestamp),order.by=as.Date(d$datestamp)) 
+0

이것은 버그 일 수 있습니다. xts/zoo 객체의 coredata는 항상 행렬이어야합니다. –