看板 R_Language 關於我們 聯絡資訊
自問自答 這個問題是高百分位累積太多重複值 我在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://www.ptt.cc/bbs/R_Language/M.1523342429.A.21C.html
x88776544pc: 如果要保留原始資料分佈的特性,用cut( x, b=5 )較好 04/10 15:39