2012-12-23 3 views
2

로컬 파일을 사용하여 candlechart를 만드는 방법에 대한 정보를 얻으려고했지만 대부분이 yahoo 및 google 파일을 참조합니다. CSV 파일에 Quantmod 사용하기

나는 포함 된 CSV 파일이

i<-"A" 
library(quantmod) 
A<-read.csv("D:\\DATA.csv",header=T) 
     A$Close<-as.numeric(A$Close) 
     A$High<-as.numeric(A$High) 
     A$Low<-as.numeric(A$Low) 
     A$Open<-as.numeric(A$Open) 
     A$Volume<-as.numeric(A$Volume) 

     #Select appropriate dataset 
     A<-A[which(A$CODE==i),] 
     A<-A[,(5:10)] 
     A$DATE<-as.Date(A$DATE,"%Y/%d/%Y") 
     A<-xts(A,order.by=as.POSIXct(A$DATE)) 
     A<-A[,(1:5)] 

내 원본 데이터 셋은 다음과 같습니다 :

head(A) 
     CODE NAME YR2 YR2 Low High Close Open Volume DATE 
49620 A A 10.25  21 112 120 116  101,500 9/11/2006 
49621 A A 10.25  21 112 120 118 116 790,700 9/12/2006 
49622 A A 10.25  21 117 124 119 118 445,300 9/13/2006 
49623 A A 10.25  21 119 127 123 119 120,200 9/14/2006 
49624 A A 10.25  21 120 127 124 123 448,700 9/15/2006 
49625 A A 10.25  21 120 130 128 124 494,600 9/18/2006 
##NOTE THAT THE FIRST COLUMNS DOES NOT HAVE A NAME(IT IS THE OBS NO.) 

위 실행 한 후 아래 그림과 같이 데이터 세트는 명령.

head(A) 
        Low High Close Open Volume 
2006-12-01 03:00:00 " 206" " 231" " 228" " 232" "1159" 
2006-12-01 03:00:00 " 204" " 230" " 206" " 229" "5711" 
2006-12-02 03:00:00 " 259" " 261" " 259" " 260" "1072" 
2006-12-02 03:00:00 " 200" " 229" " 207" " 229" "1505" 
2006-12-03 03:00:00 " 262" " 264" " 262" " 260" "5416" 
2006-12-03 03:00:00 " 204" " 227" " 206" " 208" " 676" 

난 후 아래 그림과 같이 모든 수정 후 내 데이터 세트가 필요한 형식에 COLNAMES을 수정 만들었습니다.

    A.Low A.High A.Close A.Open A.Volume 
2006-12-01 03:00:00 " 206" " 231" " 228" " 232" "1159" 
2006-12-01 03:00:00 " 204" " 230" " 206" " 229" "5711" 
2006-12-02 03:00:00 " 259" " 261" " 259" " 260" "1072" 
2006-12-02 03:00:00 " 200" " 229" " 207" " 229" "1505" 
2006-12-03 03:00:00 " 262" " 264" " 262" " 260" "5416" 
2006-12-03 03:00:00 " 204" " 227" " 206" " 208" " 676" 

여기 붙어 내가 그것을 읽으려고 할 때 내가 얻을 완전히 같은 데이터 집합 변경 내용을 저장할 때 이유는

Index.A.Low.A.High.A.Close.A.Open.A.Volume 
1 2006-12-01 03:00:00 206 231 228 232 1159 
2 2006-12-01 03:00:00 204 230 206 229 5711 
3 2006-12-02 03:00:00 259 261 259 260 1072 
4 2006-12-02 03:00:00 200 229 207 229 1505 
5 2006-12-03 03:00:00 262 264 262 260 5416 
6 2006-12-03 03:00:00 204 227 206 208 676 

내 문제

은 다음과 같습니다

  1. 날짜는 데이터 세트의 원래 날짜가 아님
  2. 내가해야 할 일을 얻을 수 없다. (캔들 차트 그리기)
+0

에 StackOverflow에 오신 것을 환영합니다. 우리는 당신을 도울 수 있지만, 먼저 당신이 도움이 될 것입니다 우리에게 조금있다. [이 게시물을] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) 재현 가능한 제공하여 좋은 질문을하는 방법을 설명하시기 바랍니다 예를 들어'? dput'을 R 터미널에 입력하여'dput' 함수를 보지 않으시겠습니까? 위에서 주어진 예제 데이터는 잘못되었습니다 : 헤더에는 6 개의 필드가 있지만 da 단지 5 개의 필드가 있습니다. 'dput '을 사용하면 이러한 오류를 줄일 수 있습니다. – SlowLearner

+0

... HTML 태그를 사용하지 말고 올바른 형식으로 질문을 만드십시오 ... –

답변

0

더 재현 할 수있는 예제가 필요한 경우 SlowLearner에 동의합니다.
하지만 관찰 몇 :

  1. 당신은 order.by = as.Date 자체를 사용 XTS로 변환 할 수 있습니다.
  2. 형식을 .date로 확인하십시오. 데이터가 mm/dd/yyyy 인 경우 (질문의 데이터에서 보이는 것처럼 명령에 '% Y/% d/% Y'대신 format '% m/% d/% Y'가 있어야합니다.

또한, 데이터는 쉼표로 구분되며, 분리되지 탭 (나까지 여러 번 미끄러) 있는지 확인하십시오.