1
我想平均數據集中的列對,而不是移動平均值。我想將列分成兩組,並找出每對的平均值。R中的平均列對
我提供了一個樣本數據集,所需的結果和嵌套的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)
}
}
我希望你不介意的編輯。添加'內部'以顯示如何直接修改'data.frame'。 – A5C1D2H2I1M1N2O1R2T1
好的貢獻,謝謝餘下關於'內部'的功能!我通常不會使用這些函數,因爲讀取代碼變得更加困難。 – DrDom