読者です 読者をやめる 読者になる 読者になる

株初心者が本気で儲けるブログ

株式投資に関連するテーマについて取り扱ってます。

【R言語】 Rへのcsvの読み込みと出力方法

 

www.dmjtmj-stock.com

 

RでCSV形式などの株価データを扱うときに便利なコマンドを載せておきます。

 

 

・使用するデータフレームの読み込み

 

例としてnikkei.csvというものを変数(オブジェクト)xとして読み込ませる時

 

 > x<-read.table(”nikkei.csv”)

  

※(読込むファイルは作業用ディレクトリに置いておく必要があります。作業用ディレクトリの指定についてはこちらを参照)

 

 

オブジェクトの種類(class)を判別する方法

 

Rのオブジェクトには、ベクトルや行列(matrix)やデータフレーム(dataframe)や時系列データ(xts)など種類があり、データ処理をするにあたってそのデータの種類を把握しておかないと上手くいかないことがあります。

 

www.dmjtmj-stock.com

 

オブジェクトの種類を把握するにはclass(オブジェクト名)を使います。

  > class(x) 

 もしオブジェクトxが、データフレームであった時は

[1]”dataframe”

となります。 

 

自動的に付加される列名を消す方法

 

読み込んだ オブジェクトxをhead()関数で最初の一部だけみてみると

 

f:id:oruka199665:20161211151637p:plain

 

V2だかV3だかいらない記号が頭についてます。

どうやらRはデータ読み込み時に列の名前を自動的に付加するようです。

このV1とかをつけないようにするには、header=TRUEと引数を加えればいいです。

 

x<-read.table("nikkei.csv",header=TRUE)

 

f:id:oruka199665:20161211152750p:plain

 

ちゃんとVが消えてます。

 

これでヘッダーが入力ファイルに含まれるようになったので[,]演算子を使って特定の要素を取り出すことが可能となります。

 

> x[1,3]
[1] 24109.89

 

> y<-x[,"close"]

> head(y)
[1] 24069.18 23736.57 22897.84 22969.27 23047.36 23241.02

 

しかし、これはデータの順番が新しい日時からなので、時系列データ分析に使うtsパッケージが使えなかったりちょっと不便なので、列をそのままひっくり返さなければなりません。そういうときに使うのがrev()関数です。

 

x<-x[rev(rownames(x)),,drop=FALSE]

 ※drop=FALSEはデータフレームがベクトルになるのを防いでいます。

 

ちなみに時系列データの代表形式であるxts形式のまま出力すると日付が出力されないので、日付を付けて出力したいのであれば、一旦as.data.frame()で変換するほうがいいです。

 

 

平均などの基本的統計量を表示させる方法

 

 基本的な統計量を表形式で入手したときは、summary()関数を使います。

 

 > summary(y)
Min. 1st Qu. Median Mean 3rd Qu. Max.
7055 10910 15510 15030 18060 27150

 

 こういう基本的統計量でデータ構造に問題点がないかを簡易チェックすることができるので大切です。

 

 

Rの内部にあるデータフレームx を外部にテキストファイルの形で保存する

 

>write.table ( x, "ファイル名.txt" )

>write.table ( x, "ファイル名.csv" )

 

おまけ:サンプルの行番号を省いて「テキストファイル」に保存する上の write.table ( x, "ファイル名.txt" ) だと サンプルの行番号 1 2 3・・・・が出力したファイルに記入されてしまいます。

この行番号を付けないでファイルを出力する場合は, write.table ( x, "ファイル名.txt", row.names=F ) と記述します。(列番号の時はrowをcolに変えるだけ)

 

 

www.dmjtmj-stock.com

www.tkstock.site