裏 RjpWiki

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

カッケー・プログラム

2011年01月28日 | ブログラミング
yBin$BMI <- ifelse(25 <= y$BMI, 1, 0)

は,単に

yBin$BMI <- 25 <= y$BMI

でよい。TRUE/FALSE は用途により 1/0 に変更して使われるので気にしなくて良いが,あえて TRUE/FALSE  ではなく 1/0 にしたいなら

yBin$BMI <- (25 <= y$BMI)+0

後者は100倍くらい速い。まあ,100000 回もやって 0.1 秒が 0.001 秒になるという,どうでもよいレベルの話ではあるが,プログラムが格好良いかどうかには影響を及ぼすだろう。

> x <- rnorm(100000)

> system.time(y1 <- ifelse(x < 0, 1, 0))
   ユーザ   システム       経過 
     0.101      0.007      0.106

> system.time(y2 <- x < 0)
   ユーザ   システム       経過 
     0.001      0.000      0.000

> system.time(y3 <- (x < 0)+0)
   ユーザ   システム       経過 
     0.001      0.000      0.002

> all(y1 == y2)
[1] TRUE

> all(y1 == y3)
[1] TRUE

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 久しぶりの大場嘉門 | トップ | 3桁区切りの数値表現 »
最新の画像もっと見る

コメントを投稿

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