vectorised 함수가 for-loops보다 나은 이유를 알게되었습니다.timeseries 집계시 for-loops 방지
그러나 벡터화 된 함수 프로그래밍 솔루션을 볼 수없는 몇 가지 문제가 있습니다. 그 중 하나는 매월 데이터를 합산하여 분기 별 데이터를 얻는 것입니다. 이 코드를 대체 할 제안 사항 ...
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' 등을 보길 원할 것입니다. –