餡子付゛録゛

ソフトウェア開発ツールの便利な使い方を紹介。

2012-02-11から1日間の記事一覧

加算後の除算≿除算後の加算

かなり大量に演算しないと目立ちませんが、500万サンプルで比較すると、0.10秒と0.16秒で差が計測できました。 obs <- 5000000 x <- runif(obs) y <- runif(obs) ### まとめて割り算 ### gc();gc() system.time({ n <- x + y m <- n / 2 print(sum(m)) }) ##…

Rは行列演算≿apply関数≿ループ演算

Rのプロビット回帰を用いたマイクロ・ベンチマークを書いたので、ソースコードを公開しておきます。 1. セットアップ 推定結果が常に同じになるように、セットアップします。 ### セットアップ ### set.seed(20120209) obs crt x1 x2 y frml # 説明変数を行…

ifelse()と論理値の掛け算

Rでは論理値TRUEとFALSEは、それぞれ1と0として演算する事ができます。ゆえにyとzがxの値に関わらず計算可能な値になるのであれば、ifelse()の代わりに論理値で演算を行う事ができます。 ifelse()はベクター演算にならないので、論理値を使う方が速いです。…

配列の拡張とパフォーマンス

動的に配列サイズが変更されるほど、パフォーマンスは劣化します。 num = 50000### 配列を拡張していく ### gc(); gc() system.time({ x <- numeric(0) i <- 1 while(i <= num){ x[i] <- i i <- i + 1 } })### 配列を一度に初期化 ### gc(); gc() system.tim…