[問題] numeric group by rank

作者: sacidoO (阿罵)   2018-01-26 12:37:43
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
想要將numerical 變數根據/ 數值區間 /rank group/binning 在一起
理想狀況是將相似數值組成新的組
限制
(1)由於變數量大 (>100) 不希望手動調區間
(2)bucket上限是20個 下限2個
(3)不使用ntile方法 因為平均分20組有可能將tie分成好幾組 (which is 不合理)
ex.
x1 value:
-1.2,-1.1,-0.8,-0.6,-0.6,-0.6,0.0,0.0,0.0,1.8,1.9,2.1,2.2,8.8,8.9
x1_group(範例)
1 1 1 1 1 1 2 2 2 3 3 3 3 4 4
x2 value:
-100,-99,-88,-50,-49,-31,-22,0, 0, 0,0,0,1,2,3
x2_group(範例)
1,1,1,2,2,2,2,3,3,3,3,3,3,3,3
[程式範例]:
嘗試一:
網上找了一些clustering method (ex. k-means)
但是該方法需要輸入想要的組數 (但是因為變數分布不同 組數不應該是固定的)
嘗試2:
看到有網友分享ddply transform rank group 的方法
ex. ddply(df, .(dep_var), transform, group=rank(x1,ties.method='min')-1)
但是這個方法會根據數值的真正值排序 並不會把"相似"值bin一起
不知道版上有沒有人有處理過相似的問題 請教了!!
[關鍵字]:
binning / grouping numeric into categorical / clustering/...
選擇性,也許未來有用
作者: andrew43 (討厭有好心推文後刪文者)   2018-01-26 14:10:00
這終究還是決定於你要怎麼分組。按你的說明,同一個變數仍不會有一個特定的分組結果。

Links booklink

Contact Us: admin [ a t ] ucptt.com