裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

私も相当な新しもの好きではあるんだが...

2015年07月22日 | ブログラミング

http://t.co/ld3MR7r2yi
for を捨てよ、foreach を書こう」だが,どういう場合に(何をどうやったら)効果的な時間短縮が得られるのか,実例を述べて欲しいなぁ

1:n までの平方根を求める

> n <- 10000

foreach を使う

> system.time(a <- foreach(i = 1:n, .combine=c) %do% sqrt(i))
   ユーザ   システム       経過  
     2.708      0.014      2.706

単なる for を使う

> system.time({b <- numeric(n);for(i in 1:n) b[i] <- sqrt(i)})
   ユーザ   システム       経過  
     0.019      0.001      0.043

ベクトル演算を使う

> system.time(c <- sqrt(1:n))
   ユーザ   システム       経過  
     0.000      0.000      0.001

同じ結果が得られることを確認しておこう

> all.equal(a, b)
[1] TRUE
> all.equal(a, c)
[1] TRUE

だれが foreach なんか使うか(ぺっ!)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 2変数が本質的に相関のある場... | トップ | どれだけ大きいデータなんだ... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事