热线电话:13121318867

登录
2018-11-07 阅读量: 899
如何提高R的循环速度?

在R中使用循环时,遵循一些黄金规则可提高运行速度:

  1. 存在矢量化替代时,请勿使用循环
  2. 不长的物体(通过ccbind在循环过程等) - R有创建一个新的对象,并在整个信息复制只是为了添加新元素或行/列
  3. 分配一个对象来保存结果并在循环期间填充它

例如,我们将创建一个新版本analyze,它将返回每个文件的每日平均炎症(列)。

请注意我们如何out在每次迭代中添加新列?这是for在R 中编写循环的主要罪过。

相反,我们可以创建一个具有正确尺寸(行/列)的空矩阵来保存结果。然后我们遍历文件,但这次我们填写f结果矩阵的第一列out。这次R没有复制/增长来处理。

在这个简单的例子中,analyze2和的计算时间差别不大analyze3。这是因为我们只迭代12个文件,因此我们只进行12次复制/增长操作。如果我们在更多文件或我们正在增长的数据对象上这样做,那么复制/增长的代价将会大得多。

请注意,apply为您处理这些内存分配问题,但是您必须将循环部分写为要传递的函数apply。从本质上讲,apply它只是一个for带有额外便利的循环。

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子