[问题类型]:
程式咨询(我想用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/...
选择性,也许未来有用