计时——逐步增长向量
在 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(___ <- ___)