【发布时间】:2015-10-19 15:58:20
【问题描述】:
我的数据是带有个人标识符和年份标识符的长格式。 它是来自不同数据集的合并和附加数据文件。
编辑:
我的目标是重塑它以对一年的所有观察结果进行回归,并使用前几年的变量。
我不打算使用任何mi 命令。
这是我的重塑代码:
use "${DATA_PATH}HViD_SOEP_rev_dum.dta"
* save all variable-names
quietly describe, varlist
local all_vars = r(varlist)
display "`all_vars'"
** reshape **
foreach var in `all_vars'{
display "`var'"
* no reshape for pid, hid, syear and ypnat
if `var' == "pid" | `var' == "hid" | `var' == "syear" | `var' == "ypnat*" {
* do nothing
}
else{
* reshape
reshape wide `var', i(pid) j(syear)
}
}
我得到回报
不;数据是 mi 集 使用 mi reshape 对这些数据执行 reshape。 mi reshape 与 reshape 具有相同的语法。 也许您没有键入 reshape。在这种情况下,您键入的命令调用 reshape,它不适合与 mi 数据一起使用。使用 mi extract 或 mi xeq 选择要运行命令的数据,可能是 m=0
在 stata 手册中写道:
mi unset 是一个很少使用的取消设置数据的命令。更好的替代品包括 mi extract 和 mi 导出(分别参见 [MI] mi extract 和 [MI] mi export)。
我尝试了mi extract = 0,这是推荐的here。
但回报是
语法错误 m=0 在 # 预期的位置找到
我也试过mi reshape widevar', i(pid) j(syear)`。在
mi 重塑宽 pgtatzt, i(pid) j(syear) (推算变量 brutto1 brutto2 hinc imo geld betr netw erbey 未注册,因为不在 m=0 中) _mi_miss 未找到
所以,现在我别无选择。我不知道在哪里可以找到 mi_miss 变量,因为它不在原始数据中。
我不想将我的数据导出到 csv 文件,因为这会导致我的标签丢失。
非常感谢任何帮助。
【问题讨论】:
-
您的数据已设置为进行多重插补,这意味着原始数据存在额外的副本,但已插补了缺失值。您打算对估算的数据进行分析吗?或者,您希望恢复原始数据集吗?
-
我打算将回归中的插补数据用作右手变量。
-
这应该交给Statalist。你确实犯了两个语法错误——使用
reshape而不是mi reshape和使用mi extract = 0而不是正确的mi extract 0,这会让你没有任何推算数据,这是你链接到的帖子的目标。其余的取决于您的数据详细信息以及在mi reshape之后查看Stata 日志的完整列表,如果没有进一步调查,则无法回答。 -
在Statalist中发帖时,1)首先在几个变量上显示
mi reshape的结果,而不是尝试批量转换;排除“未注册”名单中的人; 2) 使用mi describe查看“未注册”消息中的变量是如何表征的。请务必阅读常见问题解答,尤其是常见问题解答 12。 -
是的。在发现数据已设置好之前,我按原样发布了原始代码。正如我所说,
mi extract 0和mi reshape这两个命令都会导致 > _mi_miss not found 。我还阅读了有关 mi-data 的常见问题解答。当我问我的问题时,我仍然认为有某种方法可以重新获得 _mi_miss 或者有一个我只是不明白的特定问题(我以前从未有过 mi 数据的核心)。