【发布时间】:2019-11-01 04:31:32
【问题描述】:
我正在 Stata 中进行数据清理,如果一整套其他变量等于 1、6 或 7,我需要将变量重新编码为等于 1。
我可以使用下面的代码来做到这一点:
replace anyadl = 1 if diffdress==1 | diffdress==6 | diffdress==7 | ///
diffwalk==1 | diffwalk==6 | diffwalk==7 | ///
diffbath==1 | diffbath==6 | diffbath==7 | ///
diffeat==1 | diffeat==6 | diffeat==7 | ///
diffbed==1 | diffbed==6 | diffbed==7 | ///
difftoi==1 | difftoi==6 | difftoi==7
但是,这样打出来效率很低,而且很容易出错。
有没有更简单的方法来做到这一点?
例如,以下几行:
replace anyadl = 1 if diff* == (1 | 6 | 7)
【问题讨论】:
-
你的措辞和你的代码冲突。您的代码暗示这些变量中的任何一个都是 1、6、7 都可以。 “一整套其他变量”意味着它们都是。我已经按照您的代码所暗示的那样去做了。
-
您的语法不是使用
if语句,而是使用if限定符, -
你的名字以
any开头我也认为表明你的真实意图,
标签: if-statement stata recode