LoginSignup
6
6

More than 5 years have passed since last update.

第17回 granpark.rb 「データ解析技術入門(R言語編)」に行ってきた

Posted at

05/10に開催されたgranpark.rbに参加して来ました。
浅井さんによるRのハンズオンでしたが、あの馴染めない構文に少し馴染むことができてよかったです。

参加した際のメモを書きました。

granpark.rbについて(miztiさん)

  • 隔週で、各種技術のハンズオンとアルゴリズムのペアプロを交互にやっている。
  • see also id:mizti
  • 今後のテーマ
    • CTF大会(セキュリティ)入門
    • Rubyデバッガ詳解
    • chef大会

R入門(浅井さん)

Rのメリット・デメリット

  • メリット
    • 処理速度もそこそこ速い
    • タダ!
    • 拡張はcranからとってこればいいじゃない
  • デメリット
    • メモリに乗らないとNG
    • ベクトル、行列を意識したコードを書く必要がある
    • Googleで検索しづらい

驚きの事実

  • Rでirisと打つと、あやめのデータが出てくる
  • summary(iris)でmin,max,median,meanなどが出る
  • 色付けてplotする
pairs(iris[1:4], pch = 21, bg = c("red","green3","blue")[unclass(iris$Species)])

ダメ、絶対

  • Rでは添字操作をしてはいけない!
    • 多重のforループは使わない
    • if文はsumなどの関数の中でやる
for(j in 1:rep){
    count=sum(iris[iris[,5]=="virginica",1])+count
}

理由

  • R上で論理判断をするのではなく、Rが叩いているC++の最適化されたコードを使うほうが速いから

やってみよう

問題

これを高速化してみる

x <- runif(1000000)
test1 <- function(){
    res <- numeric(1000000)
    for(i in 1:1000000) res[i] <- exp(x[i])
    return(res)
}
system.time(test1())

処理時間

   ユーザ   システム       経過  
     1.907      0.008      1.907 

解答

x <- runif(1000000)
system.time(res <-exp(x))

処理時間

   ユーザ   システム       経過  
     0.012      0.002      0.013 

別解

system.time(c(exp(x)))

感想

  • Wekaの方が速いのかな?GUIもついていて楽?
  • Pythonのpandasと比較するとどれくらい?
6
6
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
6
6