始める無料で始める

データフレームを行列に変える

profvis が強調表示したコードの一部は、出目の候補を生成してデータフレームに保存している行でした。

df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
                d2 = sample(1:6, 3, replace = TRUE))

このコードは次の2点を改善することで最適化できます。

  • データフレームから行列へ切り替える
  • 6回分のサイコロの出目を1回で生成する

すると次のようになります。

m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)

この演習はコースの一部です

効率的なRコードの書き方

コースを見る

演習の手順

  • データフレーム解法 d() を読んで理解します。
  • 行列の解法 m() を完成させます。
    • m() は 6 要素・2 列の matrix を生成する必要があります。
  • microbenchmark() 関数を使って、d()m() の処理時間を比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Load the microbenchmark package
___

# The previous data frame solution is defined
# d() Simulates 6 dices rolls
d <- function() {
  data.frame(
    d1 = sample(1:6, 3, replace = TRUE),
    d2 = sample(1:6, 3, replace = TRUE)
  )
}

# Complete the matrix solution
m <- function() {
  ___(sample(1:6, ___, replace = TRUE), ___)
}

# Use microbenchmark to time m() and d()
___(
 data.frame_solution = d(),
 matrix_solution     = ___
)
コードを編集して実行