Stata中更新的暴露变量
我试图通过4次访问一项研究,为更新后的体重指数(Stata中更新的暴露变量,stata,Stata,我试图通过4次访问一项研究,为更新后的体重指数(bmi)创建一个变量。我尝试了下面的方法,但它只列出了上次访问的值。我的数据格式广泛,其中visit_v1=1如果参与者参加了第1次访问,并且bmi_v1=bmi参加了第1次访问。我希望bmi\u su等于bmi\u v1如果visit\u v1=1,bmi\u v2如果visit\u v2==1,等等。我有什么想法不对吗 gen bmi_su = . replace bmi_su = bmi_v4 if visit_v4==1 replace
bmi
)创建一个变量。我尝试了下面的方法,但它只列出了上次访问的值。我的数据格式广泛,其中visit_v1=1
如果参与者参加了第1次访问,并且bmi_v1=bmi
参加了第1次访问。我希望bmi\u su
等于bmi\u v1
如果visit\u v1=1
,bmi\u v2如果visit\u v2==1
,等等。我有什么想法不对吗
gen bmi_su = .
replace bmi_su = bmi_v4 if visit_v4==1
replace bmi_su = bmi_v3 if visit_v3==1 & visit_v4==0
replace bmi_su = bmi_v2 if visit_v2==1 & visit_v4==0 & visit_v3==0
replace bmi_su = bmi_v1 if visit_v1==1 & visit_v4==0 & visit_v3==0 & visit_v2==0
你是否寻求这样的东西:
. clear all
. set more off
.
. * Assumed data structure
. input ///
> id bmi visit1 visit2 visit3 bmi1 bmi2 bmi3
id bmi visit1 visit2 visit3 bmi1 bmi2 bmi3
1. 1 20 1 0 0 20 0 0
2. 1 . 0 1 0 0 25 0
3. 1 . 0 0 1 0 0 28
4. end
.
. list, noobs
+----------------------------------------------------------+
| id bmi visit1 visit2 visit3 bmi1 bmi2 bmi3 |
|----------------------------------------------------------|
| 1 20 1 0 0 20 0 0 |
| 1 . 0 1 0 0 25 0 |
| 1 . 0 0 1 0 0 28 |
+----------------------------------------------------------+
.
. * What you want?
. gen bmisu = bmi1 + bmi2 + bmi3
.
. list, noobs
+------------------------------------------------------------------+
| id bmi visit1 visit2 visit3 bmi1 bmi2 bmi3 bmisu |
|------------------------------------------------------------------|
| 1 20 1 0 0 20 0 0 20 |
| 1 . 0 1 0 0 25 0 25 |
| 1 . 0 0 1 0 0 28 28 |
+------------------------------------------------------------------+
?在长数据结构或形状(有人说是格式)中,面板数据或纵向数据通常要好得多 在您的案例中,定义意味着最后一次测量将胜过早期测量,因此不清楚您为何会感到惊讶 下面是一些更系统的计算方法。首先,
gen bmi_su = bmi_v4
forval j = 3(-1)1 {
replace bmi_su = bmi_v`j' if visit`j'
}
第二,
gen bmi_su2 = bmi_v1
forval j = 2/4 {
replace bmi_su2 = bmi_v`j' if visit`j'
}
如果缺失(bmi_su)或
如果缺失(bmi_su2)
则考虑上述变量,而不是所示的if
条件 你的问题看起来很简单,但对我来说,还不清楚。您是否介意重新表述和/或添加有关数据结构的信息(例如,它现在如何以及您希望它如何)。您在文本中提到了bmi
,但代码中没有提到。