跑了一下十年前的代码

zong0jie

 b=rep(0,1800)#这里当时打错了,不过R能自动扩展向量长度的嘛
 a=matrix(rnorm(900000,10,1),nc=5)
 system.time(for(i in 1:180000){b=t.test(a[i,])})
#用户 系统 流逝 
#9.67 0.06 9.84 

system.time(b<-apply(a,1,t.test))
#用户  系统  流逝 
#11.78  0.25 12.09 

一个粗糙的结论是十年过去了电脑快了10-30倍

KANG1943 测试了一下将所有for循环结构改成apply语句后的计算速度变化。因为不知道如何描述一个代码的复杂程度,只能说一下测试代码长什么样:1000行代码,300个变量,包含60个循环结构。for结构下运行5次的时间为145.00秒,apply语句下为133.94秒,后者较前者快了11.06秒,即每次运行快2.21秒……总之还是快了,而且就像任何对比实验的阴性结果一样,这告诉我说循环结构不是这段代码中最占用时间的环节。

不知道用现在的data.table代替data.frame是否能提高运行速度呢?