缺失值处理:变量foo含缺失值时foo_sum结果是否有误?
验证Stata中
foo_sum的计算结果 没问题,这个foo_sum的计算结果完全正确,一点错误都没有!
Stata里的sum()函数(别和summarize命令搞混哦)是用来算累积和的,它处理缺失值的规则很明确:碰到缺失值的时候,累积和会保持前一个非缺失值的累积结果,不会把缺失值当成0或者其他数值加进去。
咱们对着你的例子一步步捋:
- 第1行:
foo是缺失值,这时候还没有任何有效的foo数值,所以累积和foo_sum就是0; - 第2行:
foo=1,累积和就变成0+1=1; - 第3、4行:
foo都是缺失,累积和就一直保持之前的1不变; - 第5行:
foo=1,累积和更新成1+1=2; - 第6行:
foo=1,累积和再变成2+1=3; - 第7到10行:
foo全是缺失值,累积和就一直停在3,再也没变。
要是你想让缺失值被当成0来算累积和,得先把缺失值替换成0,比如跑这两条命令:
replace foo = 0 if missing(foo) generate foo_sum_zero = sum(foo)
这样得到的累积和才会把缺失值的位置算成0的累加。
总之,你现在得到的foo_sum完全符合Stata中sum()函数的默认逻辑,是正确的结果。
内容的提问来源于stack exchange,提问作者user8682794
相关产品推荐
相关产品推荐

