我得到爲什麼矢量化函數比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'等。 –