如何在R中一次进行汇总统计

时间:2019-12-24 17:58:24

标签: r statistics summary

如何在R中一次获得p,q,r列的“观察数,均值,标准差,极小值,1个百分位数,中位数,99个百分位数,最大值”?我知道summary()函数可以这样做,但是结果没有标准偏差和99%。 我还需要学习如何使输出具有良好的形状。 以下是我的数据:

UPDATE customer
SET "state" = 'CA'
WHERE ',' || idList || ',' LIKE '%,' || "id" || ',%'

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以使用quantile来获取其中的大部分-最大值,最小值,1%,99%和中位数(= 50%)。这省去了平均值和标准偏差。

首先,让我在您的其中一列上使用quantile

quantile(data[,'p'], probs=c(0,0.01,0.5,0.99,1))
  0%   1%  50%  99% 100% 
3.00 3.04 5.00 5.96 6.00 

要同时在p,q和r上进行操作,您需要使用类似sapply

sapply(data[,2:4], function(x) quantile(x, probs=c(0,0.01,0.5,0.99,1)))
        p    q    r
0%   3.00 1.00 2.00
1%   3.04 1.00 2.12
50%  5.00 3.00 5.00
99%  5.96 6.92 8.92
100% 6.00 7.00 9.00

如果要获取其他指标,可以通过编写自定义函数来实现。

F = function(x) c(quantile(x, probs=c(0,0.01,0.5,0.99,1)),
    mean=mean(x), sd=sd(x))

sapply(data[,2:4], F)
            p        q        r
0%   3.000000 1.000000 2.000000
1%   3.040000 1.000000 2.120000
50%  5.000000 3.000000 5.000000
99%  5.960000 6.920000 8.920000
100% 6.000000 7.000000 9.000000
mean 4.600000 3.400000 5.600000
sd   1.140175 2.607681 2.607681