【发布时间】:2012-10-08 14:49:51
【问题描述】:
我明白为什么矢量化函数比 for 循环更好。
但有些问题我看不到矢量化函数式编程解决方案。其中之一是将月度数据相加以获得季度数据。替换此代码的任何建议...
month <- 1:100
A422072L <- c(rep(NA, 4), rnorm(96, 100, 5) ) + 2 * month
A422070J <- c(NA, NA, rnorm(96, 100, 5), NA, NA) + 2 * month
Au.approvals <- data.frame(month=month, A422072L=A422072L, A422070J=A422070J)
Au.approvals$trend.sum.A422072L.qtr <- NA
Au.approvals$sa.sum.A422070J.qtr <- NA
for(i in seq_len(nrow(Au.approvals)))
{
if(i < 3) next
if(all(!is.na(Au.approvals$A422072L[(i-2):i])))
Au.approvals$trend.sum.A422072L.qtr[i] <- sum(Au.approvals$A422072L[(i-2):i])
if(all(!is.na(Au.approvals$A422070J[(i-2):i])))
Au.approvals$sa.sum.A422070J.qtr[i] <- sum(Au.approvals$A422070J[(i-2):i])
}
print(Au.approvals)
现在有足够的数据可以作为示例运行。
【问题讨论】:
-
请提供一个可重现的例子。您可能想看看
ddply、aggregate、ave等。
标签: r functional-programming plyr