向量化
作为以数据科学为重要应用领域的语言,R 有着极高的对运算速度的需求。而向量化便是优化 R 代码的重要方法之一。
向量化代码
向量化代码是指代码可以接受一个含有多个值的向量作为输入,并且同时操作向量中的每一个元素。在 R 中编写向量化代码并不难,因为许多 R 函数已经被向量化了。基于这些函数的代码都很容易进行向量化,进而得到提速。编写向量化代码的方法核心有两点:
- 对于程序中的有序步骤,使用向量化的函数来完成
- 对于程序中的同类情况,使用逻辑值取子集的方式来处理
R 的所有算术运算符都是向量化的
向量化技巧
R 中最容易出现能够使用向量化优化的场合之一就是 if
和 for
组合出现的地方,有着极高的“能够使用逻辑值取子集”的可能。
循环高效化技巧
能放在循环外运行的部分就一定不要放到循环内。
在循环内可能会发生扩容的向量,最好在循环外就准备好足够的容量。
向量化编程
具有向量化思想的编程模型可以称为向量化编程,其主要优化方法有三种:逻辑测试、取子集和元素方式执行。