计时 - 预分配
在上一个练习中,逐步增长向量大约花了 2 秒。
当我们预先分配向量时需要多久?下面给出了 pre_allocate() 函数的定义。
n <- 30000
# Fast code
pre_allocate <- function(n) {
x <- numeric(n) # Pre-allocate
for(i in 1:n)
x[i] <- rnorm(1)
x
}
本练习是课程的一部分
高效 R 代码写作
练习说明
工作区中已提供 pre_allocate() 函数。
- 使用
system.time(),测量运行pre_allocate(n)所需时间。使用<-的技巧将结果存入对象res_allocate。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)