始める無料で始める

計測:ベクトルを伸ばして作る

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(___ <- ___)
コードを編集して実行