厳密なお勉強は苦手なのでニュアンスでやってます。 きちんとお勉強したい方はきちんとした方の資料読みましょう。 Mac前提だけどWindowsでも簡単に入るらしい。
- 統計解析用の言語
- インタプリタ型/関数型
- 最適化すれば相当処理が速い
- 沢山統計処理用の関数やライブラリがある
- 通常の手続き型や関数型に比べて処理面でかなり癖がある
- Graphの plot 機能もなかなか良い感じ
- 行列/配列データの扱いがかなりシンプルにかける
- オンメモリ
- タダ
http://cran.md.tsukuba.ac.jp/bin/macosx/ ダウンロードdmgをマウントしてpkgを展開してするだけ。 アプリケーションフォルダに入ってる。
x <- 100 # integer
y <- "hello" # string
z <- [1,2,3,4,5] # array
wow <- [1:1000] # serialized numbers
x
y
z
[1,2,3,4,5]
関数を定義してオブジェクトにぶち込む
func <- function(){
val <-runif(1000000)
return(val)
}
呼び出す
func()
func とすると、オブジェクトの中身(functionの記述)が見える。 func()とすると、実行結果が返る。変な感じ。
後で整理する
- 条件分岐、繰り返しや添字をなるべく使わないようにする
- 集合を関数に直接突っ込むようにすることで大きく速度の差が出る
x <- runif(1000000)
test1 <- function(){
res <- numeric(1000000)
for(i in 1:1000000) res[i] <- exp(x[i])
return(res)
}
system.time(test1())
x <- runif(1000000)
test1 <- function(){
res <- numeric(1000000)
res[1:1000000] <- exp(x[1:1000000])
return(res)
}
system.time(test1())
x <-runif(1000000)
system.time(res<-exp(x))
- 小さいデータやプロダクトを複雑に -> R
- 大きいデータを簡単に -> Hiveとか
- 大きいデータを複雑に -> Hadoop とか
CSV/TSVは標準対応。ファイルストリームをうまく使えば何でもできることはできる