2016-05-03 8 views
0

別の変数によってグループ化され、次のようになります。http://i.imgur.com/OdiLf4t.pngR - 周波数分布の中央値、Iは、データセットを持って

名前|州|郵便番号|郡名| |頻度

希望する出力は、州別にグループ化し、平均支払額と頻度の列を使用して支払い額を中央値にすることです。

は、私は、全体的なデータセットのためにこれを行う方法を知って

median(rep(Clean$medicare_average_payment, Clean$Frequency))   

ではなく、必ず国家 することでこれを行う方法は、ありがとう

+0

可能な重複[グループによる変数を合計するには?](のhttp:// stackoverflowの.com/questions/1660124/how-to-sum-a-group by – MichaelChirico

答えて

1
我々は dplyr

library(dplyr)  
Clean1 <- Clean[rep(1:nrow(Clean), Clean$Frequency),] 
Clean1 %>% 
     group_by(State) %>% 
     summarise(Median = median(medicare_average_payment)) 

で試すことができます

またはdata.table

library(data.table) 
setDT(Clean)[, .(Median = median(rep(medicare_average_payment, Frequency))) , State] 
+0

ありがとう、dplyrメソッドがうまくいった! –

1

あなたは、データフレームを分割やってbyを使用し、それぞれの作品にこの機能を実行することができます。

by(Clean, Clean$State, 
    FUN=function(x) median(rep(x$medicare_average_payment, x$Frequency)) 
) 
関連する問題