2014-11-04 72 views
3

我在R數據$高度中的數據框中有一列。值範圍從0到400.我想對列中的值進行歸一化,使得結果值介於0-1和分位數之間,即數據集中的中值應該反映爲0.5作爲新值。分位數標準化R中的單個列

任何猜測如何做到這一點。

回答

3

R函數ppoints是值映射到他們的百分等級的常用方法。

查看其a參數 -

設置a=1爲最小值爲0,最大值爲1

設置a=0爲最小值爲1 /(N + 1)和最大的值,以N /(N + 1)

缺省情況下它具有= 3/8(如果n爲10或更小)或A = 1/2(當n大於10)

將使用該函數通過R中的其他函數。例如i t由qqnorm調用以執行正常的分位數分位數圖。

2

你想要某種rank,例如在

> set.seed(1) 
> exdf <- data.frame(height = runif(5, min=0, max=400)) 
> exdf$r1 <- (rank(exdf$height) - 1)/(length(exdf$height)-1) 
> exdf$r2 <- (rank(exdf$height)-1/2)/length(exdf$height) 
> exdf 
    height r1 r2 
1 106.20347 0.25 0.3 
2 148.84956 0.50 0.5 
3 229.14135 0.75 0.7 
4 363.28312 1.00 0.9 
5 80.67277 0.00 0.1