計時:逐步擴充向量
在 R 中,逐步擴充向量是大忌;你應該盡量避免。
下面定義的 growing() 函式會產生 n 個標準常態亂數,但每加入一個元素就把向量變長!
注意: 標準常態亂數是指平均數為 0、標準差為 1 的常態分配所抽樣得到的數值。
n <- 30000
# Slow code
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(___ <- ___)