首页 > 解决方案 > 使用一组断点将数据分位数

问题描述

对于每个级别,如何使用带有 的行计算ts_id的中值将所有数据分成 2 个箱?s1ex_id == 1

DT = data.table(

     ts_id = c(rep(1,15),rep(2,15)),
     ex_id = c(rep(1,5),rep(2,10),rep(1,5),rep(2,10)),
     s1 = rnorm(30)

)

标签: rdatatablequantile

解决方案


可能这会有所帮助。i用逻辑表达式 ( )指定ex_id == 1,按 'ts_id' 分组,split通过比较 's1' 的值与 's1' 的值创建的逻辑向量来指定median's1' (这里改为数字索引)

DT[ex_id==1,  list(split(s1, (s1 >= median(s1)) + 1)), ts_id]

注意:预期的输出不清楚


推荐阅读