2017-09-27 94 views
0

如何計算共享相同lon,lat字段的行的平均R,R1,R2,R3值?我確信這個問題存在多次,但我不能輕易找到它。列的平均值爲具有唯一值的行

lon  lat  length depth R  R1  R2  R3 
1 147.5348 -35.32395 13709  1  0.67 0.80 0.84 0.83 
2 147.5348 -35.32395 13709  2  0.47 0.48 0.56 0.54 
3 147.5348 -35.32395 13709  3  0.43 0.29 0.36 0.34 
4 147.4290 -35.27202 12652  1  0.46 0.61 0.60 0.58 
5 147.4290 -35.27202 12652  2  0.73 0.96 0.95 0.95 
6 147.4290 -35.27202 12652  3  0.77 0.92 0.92 0.91 
+0

嘗試'骨料(R〜LON,數據= DF,FUN =平均)'把所有的應用調用。 (df [,4:8],2,function(x){aggregate(x〜lon,data = df,FUN = mean)})' – missuse

回答

0

我建議使用split-apply-combine strategy,在那裏你雙方LON分裂和緯度,應用mean每個組,然後重新組合成一個單一的數據幀。

我推薦使用dplyr:

library(dplyr) 

mydata %>% 
    group_by(lon, lat) %>% 
    summarize(
     mean_r = mean(R) 
    , mean_r1 = mean(R1) 
    , mean_r2 = mean(R2) 
    , mean_r3 = mean(R3) 
) 
+1

或者更簡單:'mydata%>%group_by(lon,lat )%>%summarise_at(vars(contains(「R」)),mean)'。 – Lyngbakr

+0

完美,謝謝! – heffalump

相關問題