【问题标题】:R - Median of a Frequency distribution, grouped by another variableR - 频率分布的中位数,按另一个变量分组
【发布时间】:2016-05-03 02:46:36
【问题描述】:

我有一个如下所示的数据集:http://i.imgur.com/OdiLf4t.png

姓名 |状态 |邮政编码 |县名 |平均付款|频率

我想要的输出是按州分组,并使用平均支付和频率列进行支付中位数。

我知道如何对整个数据集执行此操作

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

但不确定州如何执行此操作 谢谢

【问题讨论】:

标签: r grouping median


【解决方案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]

【讨论】:

    【解决方案2】:

    您可以使用by 来拆分数据框并在每一块上执行此功能:

    by(Clean, Clean$State, 
       FUN=function(x) median(rep(x$medicare_average_payment, x$Frequency))
    )
    

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多