LoginSignup
1
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-30

統計処理をするために久しぶりに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
hist(iris$Sepal.Length)だと以下の結果になる。
hist.jpeg
しかし、これだとデータ群が荒いのでhist関数に指示を増やしてみる。
範囲内を幾つで区切りたいという希望があれば、breaks = 50 と指示すれば49刻みにしてくれる。
hist(iris$Sepal.Length,breaks = 50)とすれば、以下の結果になります。
hist_2.jpeg
実際、この程度まで区切り間隔を増やすと実際のデータがどのようになってるか傾向が見えてくる。
なので、できるだけ指示を指定してグラフを作成した方がよいだろう。

累積分布関数の作り方

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

使用例

z <-ecdf(y)
plot(z)
これだけでグラフを描画できる。というわけでirisを使って描写する。
z <- ecdf(iris$Sepal.Length)
plot(z)
Rplot.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

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2