在 Stata 中重新编码用字符串编码的缺失值

kyr*_*nia 0 stata

我有一个数据集,其中缺失值编码为“缺失”。我如何重新编码这些以便 Stata 将它们识别为缺失值?当我有数字缺失值时,我一直在使用例如:

  mvdecode _all, mv(99=. )
Run Code Online (Sandbox Code Playgroud)

但是,当我运行其中包含一个字符时,例如:

 mvdecode _all, mv("missing"=. )
Run Code Online (Sandbox Code Playgroud)

我得到了错误missing is not a valid numlist

Nic*_*Cox 5

mvdecode适用于数字变量:帮助中的横幅是“将数字值更改为缺失值”(添加了强调)。所以错误消息应该是有意义的:字符串"missing"肯定不是数值,所以 Stata 会阻止你。按照您的要求,对 Stata 说数值"missing"应更改为系统缺失是没有意义的。

至于你应该做什么,这取决于你在Stata术语中的编码 "missing"含义。

如果您引用具有文字值的字符串变量,"missing"这些变量应该被空字符串替换"",那么这将是所有字符串变量的循环:

  ds, has(type string)

  quietly foreach v in `r(varlist)' { 
      replace `v' = "" if `v' == "missing"
  }
Run Code Online (Sandbox Code Playgroud)

如果您引用的是有值标签的数值变量,"missing"那么您需要找出相应的数值并在调用中使用它mvdecode。用于label list查找值和值标签之间的关联。