我有一个数据框,详细记录了客户花了多少钱,如下所示:
custid, value
1, 1
1, 3
1, 2
1, 5
1, 4
1, 1
2, 1
2, 10
3, 1
3, 2
3, 5
如何使用平均值、最大值、中位数、标准差等计算特征,如下所示?使用一些应用功能?又如何?
custid, mean, max,min,median,std
1, ....
2,....
3,....
最佳答案
library(dplyr)
dat%>%
group_by(custid)%>%
summarise(Mean=mean(value), Max=max(value), Min=min(value), Median=median(value), Std=sd(value))
# custid Mean Max Min Median Std
#1 1 2.666667 5 1 2.5 1.632993
#2 2 5.500000 10 1 5.5 6.363961
#3 3 2.666667 5 1 2.0 2.081666
对于更大的数据集,data.table
会更快
setDT(dat)[,list(Mean=mean(value), Max=max(value), Min=min(value), Median=as.numeric(median(value)), Std=sd(value)), by=custid]
# custid Mean Max Min Median Std
#1: 1 2.666667 5 1 2.5 1.632993
#2: 2 5.500000 10 1 5.5 6.363961
#3: 3 2.666667 5 1 2.0 2.081666
关于r - 如何计算r中数据框中每组的平均值/中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25198442/