高效简单移动平均线的实现
1. 尽可能向量化
向量化是指移除手动循环机制,转而使用一种优化的操作,无需显式循环即可完成相同的任务。在R语言中,向量化非常有用,它可以避免显式循环带来的开销。向量化是R语言的基本工具,应尽可能使用它进行编程,而不是等到性能问题出现时才考虑。
向量化操作有多种方式:
- 对于矩阵 - 向量乘法,在R中可以直接使用特定的操作,而无需像其他编程语言那样迭代向量和矩阵的元素进行相乘和相加。
- 使用R提供的 apply 函数族(如 lapply 、 sapply 等),可以使代码更简单,实现速度更快。不过 apply 函数并不是该函数族中优化程度最高的,性能提升不如其他函数,但代码清晰度会提高。
- 用R的内置函数替代循环。例如,在代码中原本使用 for 循环对 period_prices 向量的元素求和并除以 period 求均值,可直接使用 mean 函数替代。
以下是使用 mean 函数优化后的代码:
sma_slow_3 <- function(period, symbol, data) {
result <- NULL
for (end in 2:nrow(data)) {
position <- end
sma <- NA
n
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



