2017-09-27 8 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 =平均)は 'すべての適用コールに入れて'してみてください。 – missuse

答えて

0

私は、単一のデータフレームに再結合し、その後、各グループにmeanを適用し、あなたは経度と緯度の両方で分割しているsplit-apply-combine strategyを、使用してお勧めします。

私は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)' apply(df [、4:8]、2、function(x){aggregate(x〜lon、data = df、FUN = mean)}) )%>%summarise_at(vars(( "R")を含む)、平均) '。 – Lyngbakr

+0

完璧、ありがとう! – heffalump

関連する問題