加快R运行的简易方法-预分配内存

本文探讨了R语言中预分配内存对于提高代码运行速度的重要性。通过实例展示了向量多次内存分配导致的性能下降,并提出通过预先设定向量长度来减少内存分配次数,从而优化代码执行效率。在无法预知向量长度的情况下,可以通过预分配大容量内存并后续删除无用部分的方式进一步优化。
摘要由CSDN通过智能技术生成

向量的内存分配过程比较耗时,自身之前一些不好的代码习惯,例如下面随意的例子中,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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值