我有一个数据组中,看起来像下面这样:http://i.imgur.com/OdiLf4t.png的R - 频率分布的中位数,由另一个变量
名称|状态|邮编| County_name |平均付款|频率
我希望的输出是按国家分组,并使用平均付款和频率列的中位数付款。
我知道如何为整个数据集做这个
median(rep(Clean$medicare_average_payment, Clean$Frequency))
但不知道如何通过国家 做到这一点谢谢
我有一个数据组中,看起来像下面这样:http://i.imgur.com/OdiLf4t.png的R - 频率分布的中位数,由另一个变量
名称|状态|邮编| County_name |平均付款|频率
我希望的输出是按国家分组,并使用平均付款和频率列的中位数付款。
我知道如何为整个数据集做这个
median(rep(Clean$medicare_average_payment, Clean$Frequency))
但不知道如何通过国家 做到这一点谢谢
我们可以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]
谢谢你,dplyr方法效果很好! –
可以使用by
做分割数据帧和每个片执行此功能:
by(Clean, Clean$State,
FUN=function(x) median(rep(x$medicare_average_payment, x$Frequency))
)
的可能的复制[如何总和组变量?](HTTP://计算器.com/questions/1660124/how-to-sum-a-variable-by-group) – MichaelChirico