【发布时间】:2017-11-17 21:38:39
【问题描述】:
我在 R 中使用函数 quantile 来计算第 90、75、50、25 个百分位数,但后来我的同事使用 SAS proc 单变量进行相同的计算,我们得到了完全不同的结果(例如,来自 R 的第 90 个百分位数是 47.36,但 SAS 的第 90 个百分位是 50.64)。我试图找出原因。有人可以给我一些指导吗?
R代码:
分位数(c(43.55,41.30,39.40,40.93,38.74,39.97,45.38,41.48,45.01,42.03,44.71,43.42,45.83,43.44,37.84,50.64,53.16,45.95),概率=c(0.90, 0.10, 0.75, 0.50, 0.25))
SAS 代码:
data x;
input x;
datalines;
43.55
41.30
39.40
40.93
38.74
39.97
45.38
41.48
45.01
42.03
44.71
43.42
45.83
43.44
37.84
50.64
53.16
45.95
;
run;
proc univariate data=x noprint ;
var x;
output out=new p90=p90 p10=p10 q3=p75 median=p50 q1=p25 ;
run;
【问题讨论】:
-
在 R 中,
quantile()有一个type=参数。 (对于什么是分位数,没有一个通用的定义。)尝试type=3(应该与 SAS 定义匹配)。请参阅?quantile了解不同的定义。