移動平均ではなく、データセット内の列のペアを平均したいと思います。列を2つのグループに分割し、各ペアの平均を求めます。
サンプルデータセット、目的の結果、および目的の結果を返すネストされたforループを示します。もっと良い方法があると思いました。別の投稿で解決策を見落としている場合は申し訳ありません。私はここで検索しましたが、私は通常試みるほど熱心にインターネットを検索しませんでした。アドバイスありがとうございます。
x = read.table(text = "
site yr1 yr2 yr3 yr4
1 2 4 6 8
2 10 20 30 40
3 5 NA 2 3
4 100 100 NA NA",
sep = "", header = TRUE)
x
desired.outcome = read.table(text = "
site ave12 ave34
1 3 7
2 15 35
3 5 2.5
4 100 NA",
sep = "", header = TRUE)
result <- matrix(NA, ncol=((ncol(x)/2)+1), nrow=nrow(x))
for(i in 1: ((ncol(x)-1)/2)) {
for(j in 1:nrow(x)) {
result[j, 1 ] <- x[j,1]
result[j,(i+1)] <- mean(c(x[j,(1 + ((i-1)*2 + 1))], x[j,(1 + ((i-1)*2 + 2))]), na.rm = TRUE)
}
}