向量的内存分配过程比较耗时,自身之前一些不好的代码习惯,例如下面随意的例子中,num被多次分配内存(长度变化),当长度从100上升至1000000时,内存的分配次数从百次上增值百万次,速度会相差几十或上百倍,并且时间随着次数的增多而变长,如果将num <- NULL替换成num <- vector(length=100),则内存分配次数变为1:
num <- NULL ; k <- 0 ###NULL含义:存在而未知
for(i in 1:100){
num <- c(num,k)
k <- k+1
}
但更多时候我们是不知道向量num的具体长度的:利用R编艺术的例子,寻找连续出现的1的过程:
findruns <- function(x,k