作者s3714443 (metalheads)
看板R_Language
標題Re: [問題] 由大排到小分五群
時間Tue Apr 10 14:40:25 2018
自問自答
這個問題是高百分位累積太多重複值
我在stackoverflow發現有個高手自己寫函數來解決
先做一個符合特性的向量 並想分5群
x=c(rep(10,20),runif(50,2,10))
findInterval(x,quantile(x,probs = 0:5/5),
rightmost.closed=T,left.open = T )
會發現只能分4群
hmisc的cut2也是
cut2(x,g=5) %>% as.numeric()
自製函數可以成功分出5群
ntile=function(x,n){
b <- x[!is.na(x)]
q <- floor((n * (rank(b, ties.method = "first")-1)/length(b))+1)
d <- rep(NA, length(x))
d[!is.na(x)] <- q
return(d)
}
大家可以試試看
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.72.53
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1523342429.A.21C.html
1F:推 x88776544pc: 如果要保留原始資料分佈的特性,用cut( x, b=5 )較好 04/10 15:39