如何在R中一次获得p,q,r列的“观察数,均值,标准差,极小值,1个百分位数,中位数,99个百分位数,最大值”?我知道summary()函数可以这样做,但是结果没有标准偏差和99%。 我还需要学习如何使输出具有良好的形状。 以下是我的数据:
UPDATE customer
SET "state" = 'CA'
WHERE ',' || idList || ',' LIKE '%,' || "id" || ',%'
答案 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