英文:
Getting the sum of two variables on Stata with missing values
问题
如何生成一个新变量,该变量给出两个变量(msf_n_4weeks
和 msm_n_4weeks
)的总和,但只在这两个变量的值都缺失时赋予缺失值。这两个变量既有缺失值,又有0值。我使用了下面的代码,但它不仅将总和为0的情况分配了值0
,还将两个变量都缺失的情况分配了值0
。
egen m_n_4weeks = rowtotal(msf_n_4weeks msm_n_4weeks)
相反,我想要得到类似这样的结果:
msf_n_4weeks msm_n_4weeks m_n_4weeks
5 3 8
0 2 2
12 0 12
6 . 6
. 5 5
. . .
我该如何做到这一点?
英文:
How do I generate
a new variable which gives me the sum of two variables (msf_n_4weeks
and msm_n_4weeks
) but only assigns a missing value if BOTH of the values for the variables is missing. The variables have missing values and also 0 as a value. I used the below code and it assigned the value 0
to those where the sum is 0 but also to those where both variables have missing values.
egen m_n_4weeks = rowtotal(msf_n_4weeks msm_n_4weeks)
Instead, I want to get something like this:
msf_n_4weeks msm_n_4weeks m_n_4weeks
5 3 8
0 2 2
12 0 12
6 . 6
. 5 5
. . .
How can I do this?
答案1
得分: 2
你的尝试非常接近解决方案:请查看egen
中的rowtotal()
,在帮助文档的文件中。然后使用以下代码:
egen m_n_4weeks = rowtotal(msf_n_4weeks msm_n_4weeks), missing
英文:
Your attempt is very close to the solution: see rowtotal()
in the egen
help file.
egen m_n_4weeks = rowtotal(msf_n_4weeks msm_n_4weeks), missing
答案2
得分: 0
清除
输入 msf_n_4weeks msm_n_4weeks m_n_4weeks
5 3 8
0 2 2
12 0 12
6 . 6
. 5 5
. . .
结束
本地变量 a msf_n_4weeks
本地变量 b msm_n_4weeks
生成 wanted = 条件(缺失(`a`) & 缺失(`b`), . , 条件(缺失(`b`), 0, `b`) + 条件(缺失(`a`), 0, `a`))
另一种方法是这样做。
英文:
clear
input msf_n_4weeks msm_n_4weeks m_n_4weeks
5 3 8
0 2 2
12 0 12
6 . 6
. 5 5
. . .
end
local a msf_n_4weeks
local b msm_n_4weeks
gen wanted = cond(missing(`a') & missing(`b'), . , cond(missing(`b'), 0, `b') + cond(missing(`a'), 0, `a'))
is another way to do it.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论