Stata中foreach循环替换变量特定值失效问题求助
问题解决方法
你的代码存在两个关键错误,导致替换操作没有生效:
- 局部变量引用错误:Stata中调用局部变量必须使用「反引号(
)开头 + 单引号(')结尾」的格式,你写的'var'是两个单引号,Stata无法识别这是要调用循环中的变量,相当于每次都在操作一个不存在的'var'`变量,自然不会有任何效果。 - 字符串缺失值使用错误:字符串类型变量的缺失值是空字符串
"",而非"."——"."只是一个普通的字符串内容,并不是Stata认可的字符串缺失值。
修正后的代码如下:
local vars fpl_100_150 fpl_150_200 fpl_200_250 foreach var of local vars { replace `var' = "" if `var' == "NR" }
如果后续需要将这些字符串变量转换为数值变量,替换完成后可以把destring var', replace`命令加入循环内一起处理。
内容的提问来源于stack exchange,提问作者sili
相关产品推荐
相关产品推荐

