今天糾結了一天的百分等級問題,現整理一下糾結成果:
由于Excel算出來的百分等級低于SPSS中的數值,是以開始了找原因的漫漫長路
後來搜尋過程中,使用R中的:
rank(m1)/length(m1) ## 與spss一緻,采用序位中值
此時計算的結果和SPSS一緻
後來發現dplyr包中有個函數叫,percent_rank()
這個函數算出來的百分等級和Excel一緻,于是果斷檢視源代碼
發現它是這麼算的:
(min_rank(m1) - 1)/(sum(!is.na(m1)) - 1)
可以看到,它使用的是序位的下界。
rank(m1,ties.method = \'min\')
rank(m1,ties.method = \'average\')
R中 rank函數預設的是使用均值,是以第一種方法的結果會和SPSS一緻,是以SPSS也是用的序位中值計算的秩。
而Excel中用的是最小的秩,而非均值。
具體為什麼減一。。。還不知道