我想替换一个变量列表,该列表的字符串值"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"
。