詹惠儿

2018-11-07   阅读量: 756

数据分析师 R语言

如何提高R的循环速度?

扫码加入数据分析学习群

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

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

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

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

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

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

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

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 3 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子