計測:ベクトルを伸ばして作る
Rでベクトルを「伸ばしながら」作るのはご法度の一つです。必ず避けるべきです。
以下で定義しているgrowing()関数は、n個の標準正規乱数を生成しますが、要素を追加するたびにベクトルの長さを伸ばしています!
注: 標準正規乱数は、平均0・標準偏差1の正規分布から得られる数値です。
n <- 30000
# 遅いコード
growing <- function(n) {
x <- NULL
for(i in 1:n)
x <- c(x, rnorm(1))
x
}
この演習はコースの一部です
効率的なRコードの書き方
演習の手順
growing()関数はすでにワークスペースに定義されています。
system.time()関数を使って、growing()関数でn = 30000個の標準正規乱数を生成するのにかかる時間を計測してください。結果は<-のテクニックを使って、res_growというベクトルに保存します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)