我的数据是长格式的,有单独的标识符和年份标识符。它是来自不同数据集的合并和附加的数据文件。
编辑:我的目标是重塑它,用前几年的变量对所有一年的观测结果进行回归。我的目标不是能够使用任何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整形对这些数据执行整形。mi reshape具有与reshape相同的语法。也许你没有键入重塑。在这种情况下,您输入的命令调用了reshape,因此不适合与mi数据一起使用。使用mi解压缩或mi xeq选择要运行命令的数据,这可能是m=0。
在“stata-手册”中,有一条是:
mi unset是很少使用的取消数据设置的命令。更好的替代品包括mi提取和mi导出(分别见MI提取和mi导出)。
我尝试了mi extract = 0,这是推荐的这里。但回报是
语法错误m=0找到#预期的位置
我还尝试了mi reshape widevar',i(pid) j(syear)`。它解决了
i(pid) j(syear) ( brutto1 brutto2 hinc imo geld betr netw erbey未注册,因为未在m=0中注册) _mi_miss未找到
所以,现在我已经别无选择了。我不知道在哪里可以找到mi_miss变量,因为它不在原始数据中。
我不想将我的数据导出到csv文件中,因为这会导致我的标签丢失。
任何帮助都是非常感谢的。
发布于 2015-10-22 10:37:42
感谢大家花了这么多时间,并认为你在这个问题上献出了力量。我会回答我的问题,因为我至少找到了一个解决办法。我知道我的问题是一个非常具体的问题。不管怎样,伊豪,这是解决这个问题的最好办法。。
最初的想法来自于国家主义者。
我将mi集数据导出到.csv,并确保标记变量,其中导出的变量不是整数,而是值。然后,我将数据重新导入到stata。结果文件不再是mi集了。通过将这些数据附加到我的其余数据中,我重新获得了目标文件,但这一次不是mi设置。在追加时,我确保重新导入的文件不是主文件,而是使用文件。因此,主文件中的标签将展开为最终文件.下面是我的导出和重新输入代码:
* load data *
use "${DATA_PATH}HViD_green_yellow.dta"
*** export data to .csv ***
/*
NOTE: instead of labels the numeric values are saved! This is important to
ensure that the reimported dataset will be compatabile with SOEP-data.
All strings are in double quotes: ""
*/
export delimited using "${DATA_PATH}HViD_miunset.csv", nolabel quote replace
clear
*** import data ***
import delimited "${DATA_PATH}HViD_miunset.csv"
*** check data for integrity **
cf _all using "${DATA_PATH}HViD_green_yellow.dta"
*** save data ***
save "${DATA_PATH}HViD_miunset.dta"https://stackoverflow.com/questions/33218916
复制相似问题