如何通过Stata中的循环替换变量的特定值



我想替换一个变量列表,该列表的字符串值"NR"为missing。命令为replace。但是,varlist的foreach循环似乎不起作用。在运行并查看数据集之后,值仍然是"NR"而不是">

代码:

local vars fpl_100_150 fpl_150_200 fpl_200_250 
foreach var of local vars {
replace 'var' = "." if 'var' == "NR"
}

两件事。

首先,代码中的错误是将在foreach var of local vars {中创建的本地var引用为'var',而不是`var'。因此,你得到的错误的修复方法是:

local vars fpl_100_150 fpl_150_200 fpl_200_250 
foreach var of local vars {
replace `var' = "." if `var' == "NR"
}

此外,Stata中缺少字符串值的约定是空字符串"".是表示缺失数值的约定。当Stata命令测试一个变量(例如missing(fpl_100_150 )(时,这一点变得很重要。该语法通常在其他命令中使用:函数missing()"."分类为未丢失,而将""分类为丢失。因此,我建议您将循环内的行更改为replace `var' = "" if `var' == "NR"

最新更新