我写了下面的一段代码,目的是想将分组后每组中间区段的数据保留,再从上一步保留下来的数据再分组,并剔除分组中医疗费用高于平均值2倍或低于0.3倍的数据,第一步计算出的结果我用dylpr来做结果是一样的,但是第二步的结果就不同了,比dylpr多出不少,感觉代码逻辑也没有写错,不知道为什么结果不一致
data[,
.SD[
医疗总费用[length(医疗总费用)<=5|
((医疗总费用>quantile(医疗总费用)[2]-1.5*IQR(医疗总费用)) &
(医疗总费用<quantile(医疗总费用)[4]+1.5*IQR(医疗总费用)))
]
],
by = .(分组编码)
][,
.SD[
医疗总费用[length(医疗总费用)<=5|
((医疗总费用 > mean(医疗总费用) * 0.3) &
(医疗总费用 < mean(医疗总费用) * 2))
]
],
by = .(分组编码)
] %>% nrow()