[R入門：解析に必要なことPart 1] csvファイルのデータをRで読み込み、グラフに出力する。

統計処理をするために久しぶりにRを使うことにしたので、忘備録として記録する。

## R使用環境
Rstudio - Version 1.0.136
R       - 3.3.3
OS      - Windows7

## 本文章の目的
ある多数の計測結果を効率的に処理するために、得られたデータをどのようにして整理するかを検討するためにテストを行った。その際に用いた関数、出やすいエラーをまとめた。

## csvファイルを読み込む  --part1
read.csv(file, header = TRUE, sep = ",", quote = "\"",
         dec = ".", fill = TRUE, comment.char = "", ...)

read.csv2(file, header = TRUE, sep = ";", quote = "\"",
          dec = ",", fill = TRUE, comment.char = "", ...)

---read.csvとread.csv2の違いは、区切り文字が"."か","の違いである。

##### 使用例
x <- read.csv("C:/Users/○○/Desktop/○○.csv")
データを格納する変数xにcsvファイルの中身を書き込む。

---ただし、Rstudioの自動変換を使うと/の代わりに￥が入ることがあるため、(/)スラッシュに変換しなければならない。

## csvファイルを読み込む  --part2
以下のコマンドでまずライブラリをインストールしておく。
install.packages("data.table")
---read.csvよりも高速な処理である。
 　  私の使用例では0.55秒が0.33秒となった。
     read.csvは読み込み時間のばらつきが大きいようだった。
     列名の読み込みは厳しいようで読み込みに失敗した。
##### 使用例
library(data.table)
x <- fread("C:/Users/○○/Desktop/○○.csv")

## 読み込んだデータの確認
length(x)   ←行数を見る
dim(x)      ←行列数を見る
summary(x)  ←列ごとのデータ分布をみる（左から最小値、第1四分位点、中央値、平均、第3四分位点、最大値）

## 配列の参照方法
行列の値の参照する方法の一例を示す。
x[,3]    ←3列目のデータのみを参照する。
x[3,]    ←3行目のデータのみを参照する。

## ヒストグラムの作り方
ヒストグラムを作成する関数は
hist(x, breaks = "Sturges",
     freq = NULL, probability = !freq,
     include.lowest = TRUE, right = TRUE,
     density = NULL, angle = 45, col = NULL, border = NULL,
     main = paste("Histogram of" , xname),
     xlim = range(breaks), ylim = NULL,
     xlab = xname, ylab,
     axes = TRUE, plot = TRUE, labels = FALSE,
     nclass = NULL, warn.unused = TRUE, ...)
である。
先ほどの参照方法は配列を示すため、この関数には適応できない。
ベクトルで値を渡す必要があり$を使う。
fread()で読み込んだ場合、
hist(x$V3)
を使えばよい。

##### 使用例
irisデータを使って実際に出力してみた。
まず、
plot(iris$Sepal.Length)だと以下の結果になる。
![plot.jpeg](https://qiita-image-store.s3.amazonaws.com/0/167172/f6bccc7c-4217-f707-2c3a-7ee37fc23bbc.jpeg)
hist(iris$Sepal.Length)だと以下の結果になる。
![hist.jpeg](https://qiita-image-store.s3.amazonaws.com/0/167172/7cc868f9-a67b-2784-3708-2b422b68348d.jpeg)
しかし、これだとデータ群が荒いのでhist関数に指示を増やしてみる。
範囲内を幾つで区切りたいという希望があれば、breaks = 50 と指示すれば49刻みにしてくれる。
hist(iris$Sepal.Length,breaks = 50)とすれば、以下の結果になります。
![hist_2.jpeg](https://qiita-image-store.s3.amazonaws.com/0/167172/b25f4401-519f-8993-c361-9a31ac9a99c8.jpeg)
実際、この程度まで区切り間隔を増やすと実際のデータがどのようになってるか傾向が見えてくる。
なので、できるだけ指示を指定してグラフを作成した方がよいだろう。

## 累積分布関数の作り方
累積分布関数を作るには
ecdf()
を使うことで累積分布関数(cdf)を描く

##### 使用例
z <-ecdf(y)
plot(z)
これだけでグラフを描画できる。というわけでirisを使って描写する。
z <- ecdf(iris$Sepal.Length)
plot(z)
![Rplot.jpeg](https://qiita-image-store.s3.amazonaws.com/0/167172/3860d06b-2dbc-2e9e-7369-356d15dc8557.jpeg)
非常に簡単です。

## データの取り扱いの一例

### 1. 演算を行う。
基本のベクトル演算については、
+ (加算)、- (減算)、* (積)、/ (商)、%/% (整数商)、%% (剰余)、^ (べき乗)
でよい。
行列の演算については
+ (加算)、- (減算)、%*% (要素毎の積)、* (内積)、/ (要素毎の商)
などがある。

### 2. 和を求める
sum() ←定番の関数ですね。
オプションでna.rm = TRUEをつけるとベクトル内にNANがあっても無視してくれる。

##### 使用例
sum(y^3,na.rm = TRUE)/sum(y^2,na.rm = TRUE)　←yは行列ではなくベクトルです。

## 便利な関数
apply()←用法は気が向いたら記載




### 参考文献
・read.csv()
https://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html
・fread()
http://oku.edu.mie-u.ac.jp/%7Eokumura/stat/datatable.html
・前処理
http://wafdata.hatenablog.com/entry/2015/05/06/214501
・summary()
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/39.html
・hist()
https://stat.ethz.ch/R-manual/R-devel/library/graphics/html/hist.html
http://bio-info.biz/tips/r_histogram.html
・演算
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/14.html
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/20.html
・apply()
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/24.html
・累積分布関数
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/63.html