2018-11-07
阅读量:
899
如何提高R的循环速度?
在R中使用循环时,遵循一些黄金规则可提高运行速度:
- 存在矢量化替代时,请勿使用循环
- 不长的物体(通过
c
,cbind
在循环过程等) - R有创建一个新的对象,并在整个信息复制只是为了添加新元素或行/列 - 分配一个对象来保存结果并在循环期间填充它
例如,我们将创建一个新版本analyze
,它将返回每个文件的每日平均炎症(列)。
请注意我们如何out
在每次迭代中添加新列?这是for
在R 中编写循环的主要罪过。
相反,我们可以创建一个具有正确尺寸(行/列)的空矩阵来保存结果。然后我们遍历文件,但这次我们填写f
结果矩阵的第一列out
。这次R没有复制/增长来处理。
在这个简单的例子中,analyze2
和的计算时间差别不大analyze3
。这是因为我们只迭代12个文件,因此我们只进行12次复制/增长操作。如果我们在更多文件或我们正在增长的数据对象上这样做,那么复制/增长的代价将会大得多。
请注意,apply
为您处理这些内存分配问题,但是您必须将循环部分写为要传递的函数apply
。从本质上讲,apply
它只是一个for
带有额外便利的循环。
0.0000
0
3
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论