2

ローソク足チャートを作成するためにローカル ファイルを使用する方法に関する情報を取得しようとしていますが、それらのほとんどは yahoo および google ファイルを参照しています。

私は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"

次に、colname を必要な形式に変更して作成しました。すべての変更後のデータセットは以下のとおりです。

                    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. 必要なことができません (ローソク足を描く)
4

1 に答える 1

0

より再現性のある例を要求することについて、SlowLearnerに同意します。
ただし、いくつかの所見:

  1. order.by=as.Date自体を使用してxtsに変換できます。
  2. as.Dateの形式を確認してください。データがmm/dd / yyyyの場合(質問のデータからわかるように、コマンドは'%Y /%d /%Y'ではなくformat ='%m /%d /%Y'である必要があります。

また、データがカンマで区切られ、タブで区切られていないことを確認してください(何度も私を滑らせてしまいました)。

于 2013-01-10T10:56:07.507 に答える