【发布时间】:2019-09-04 17:14:35
【问题描述】:
假设我有一个名为 score.master 的数据框,如下所示:
school perc.prof num.tested
A 8 482
B 6-9 34
C 40-49 49
D GE50 81
E 80-89 26
这里,A 学校的精通百分比是 8%,测试的学生人数是 482。但是,假设当num.tested 低于某个数字(在本例中为任意 100)时,会引入数据抑制。在大多数情况下,会给出perc.prof 的范围,但在其他情况下会给出诸如“GE50”之类的值,表示大于或等于50。
我的问题是,在更大的数据集中,用中值替换范围的最佳方法是什么?例如,我希望最终的数据集如下所示:
school perc.prof num.tested
A 8 482
B 8 34
C 44 49
D 75 81
E 85 26
我知道这可以像这样手动完成:
score.master$perc.prof[score.master$perc.prof == "6-9"] <- round(median(6:9), 0)
但是实际的数据集有更多的范围组合。我想到选择正确值的一种方法是按长度;所有提供的值都是 1-2 个字符长(不超过 99% 的熟练度),而范围值是 3 个或更多字符长。
【问题讨论】:
-
关于插补数据的问题的第二部分是统计方法问题,因此它与 SO 无关,但非常适合 Cross Validated。也许从这里删除这篇文章的那部分,并在简历上作为自己的问题发布
-
完成,谢谢推荐。
-
您打算如何标记要估算的组?在此示例中,您希望对除学校 A 之外的所有其他人都有估算值?那么你对学校 D 有什么期望呢?