【发布时间】:2020-06-23 04:35:21
【问题描述】:
有一个相当大的 Stata 数据集(教育),其中有 60 多个变量专门用于“考试”信息,还有一些基于学生性别、年龄、人口统计等的变量。有成千上万的学生(行)。不幸的是,各种测试的成绩不是标准的(字母和数字的组合,并且可能出现在每个学生的 60 多个列中的任何一个中,具体取决于他们参加相关考试的时间)。我正在尝试创建一个新变量,以识别此时参加 G40 或 G41 考试的所有人员。成绩列都被分配为dx,并带有一个数字,所以我开始尝试以下方法:
gen byte event = 0
replace event = 1 if dx1 == "G40" | dx1 == "G41"| dx2 == "G40" | dx2 == "G41" | dx3 == "G40" | dx3 == "G41" | dx4 == "G40" | dx4 == "G41" | dx5 == "G40" | dx5 == "G41" & age < 12
我不想在每次为新考试创建新变量时都写出 60 多列中的每一列。有更快的方法吗?
【问题讨论】: