如何使用R计算每日时间序列上的8天累积降雨量?

如何使用R计算每日时间序列上的8天累积降雨量?,r,R,我正试图用这个代码计算8天的累积降雨量,但似乎效果不好 chuva$Precipitacao它是我每日降雨量的载体,长度为5601 rain<-chuva$Precipitacao j=1 rain8<-vector() for (i in 1:800){ rain8<-rbind(rain8, (rain[j]+rain[j+1]+rain[j+2]+rain[j+3]+ rain[j+4]+rain[j+5]+rain[j

我正试图用这个代码计算8天的累积降雨量,但似乎效果不好

chuva$Precipitacao它是我每日降雨量的载体,长度为5601

 rain<-chuva$Precipitacao 
j=1
rain8<-vector()
for (i in 1:800){
   rain8<-rbind(rain8, (rain[j]+rain[j+1]+rain[j+2]+rain[j+3]+
                     rain[j+4]+rain[j+5]+rain[j+6]+rain[j+7]));
  j=i+7
}

rain你可以这样做:

## if you want to calculate moving sum of 8 days
rain <- chuva$Precipitacao
rain8 <- vector()
for (i in rain[1:5594]){
    rain8 <- c(rain8, sum(rain[i:i + 7]))
}

## if you want to calculate sum for each separate period of 8 days
rain <- chuva$Precipitacao
rain8 <- vector()
for (i in seq(1, length(rain), 7)){
    rain8 <- c(rain8, sum(rain[i:i + 7]))
}
如果要计算8天的移动和
雨你可以这样做:

## if you want to calculate moving sum of 8 days
rain <- chuva$Precipitacao
rain8 <- vector()
for (i in rain[1:5594]){
    rain8 <- c(rain8, sum(rain[i:i + 7]))
}

## if you want to calculate sum for each separate period of 8 days
rain <- chuva$Precipitacao
rain8 <- vector()
for (i in seq(1, length(rain), 7)){
    rain8 <- c(rain8, sum(rain[i:i + 7]))
}
如果要计算8天的移动和
rain您可以从zoo软件包中尝试以下单行rollapply功能

rain8<-rollapply(rain, 'your main vector
                 8,    'The number of consecutive data points
                 sum)  'The function you want to apply

rain8您可以从zoo软件包中尝试以下单行rollapply函数

rain8<-rollapply(rain, 'your main vector
                 8,    'The number of consecutive data points
                 sum)  'The function you want to apply
rain8