如果缺少 (.) (Stata),请替换
Replace if missing (.) (Stata)
我的数据如下:
dataex pchange
-20
.
3
-47
44
.
0
然后我写了下面的代码:
gen ind_inc=""
replace ind_inc="Decreased" if pchange<0
replace ind_inc="Same" if pchange==0
replace ind_inc="Increased" if pchange>1
前三行按预期工作,但是,在 pchange 缺少“.”的行中,它们在 ind_inc 变量下被归类为已增加,我该如何更正?
pchange labor_inc
-50 Decreased
. Increased
. Increased
-44 Decreased
0 Same
Stata 中的缺失值被视为非常大的正值。有关详细信息,请参阅 help missing
。
在你的情况下,你已经写了 replace ind_inc="Increased" if pchange>1
。当 pchange
缺失时,它是一个非常大的正值,大于 1 所以 ind_inc
被替换。
相反,您可以使用以下内容:
replace ind_inc="Increased" if pchange>1 & !missing(pchange)
与另一个答案相比,这更像是评论,但以这种方式显示会更容易阅读。即使对
进行了明显的修复
gen ind_inc=""
replace ind_inc="Decreased" if pchange<0
replace ind_inc="Same" if pchange==0
replace ind_inc="Increased" if pchange>0
这是个坏主意,因为一旦您尝试将结果制表或绘制图表,您就会发现。 ind_inc
不记得其来源,因此将按字母顺序显示,"Decreased" "Increased" "Same"
。很难相信这就是你想要的。
我推荐更像
gen ind_inc = sign(pchange) if pchange < .
label define ind_inc -1 "Decreased" 0 "Same" 1 "Increased"
label val ind_inc ind_inc
我的数据如下:
dataex pchange
-20
.
3
-47
44
.
0
然后我写了下面的代码:
gen ind_inc=""
replace ind_inc="Decreased" if pchange<0
replace ind_inc="Same" if pchange==0
replace ind_inc="Increased" if pchange>1
前三行按预期工作,但是,在 pchange 缺少“.”的行中,它们在 ind_inc 变量下被归类为已增加,我该如何更正?
pchange labor_inc
-50 Decreased
. Increased
. Increased
-44 Decreased
0 Same
Stata 中的缺失值被视为非常大的正值。有关详细信息,请参阅 help missing
。
在你的情况下,你已经写了 replace ind_inc="Increased" if pchange>1
。当 pchange
缺失时,它是一个非常大的正值,大于 1 所以 ind_inc
被替换。
相反,您可以使用以下内容:
replace ind_inc="Increased" if pchange>1 & !missing(pchange)
与另一个答案相比,这更像是评论,但以这种方式显示会更容易阅读。即使对
进行了明显的修复gen ind_inc=""
replace ind_inc="Decreased" if pchange<0
replace ind_inc="Same" if pchange==0
replace ind_inc="Increased" if pchange>0
这是个坏主意,因为一旦您尝试将结果制表或绘制图表,您就会发现。 ind_inc
不记得其来源,因此将按字母顺序显示,"Decreased" "Increased" "Same"
。很难相信这就是你想要的。
我推荐更像
gen ind_inc = sign(pchange) if pchange < .
label define ind_inc -1 "Decreased" 0 "Same" 1 "Increased"
label val ind_inc ind_inc