对于几个国家/地区,我有一个数据集,我想vlist
为每个国家/地区保留一个变量列表(在 global 中指定)。有些变量在某些国家不存在。
我希望 Stata 忽略这些变量的不存在并keep
为其余变量执行命令。然而,问题是for
国家层面的额外循环,我正在努力融入。
这个问题类似于这些线程中提出的问题:
最终,我希望为每个国家/地区提供一个数据集,该数据集仅包含在 中指定的那些变量vlist
(减去那些vlist
不存在的变量)。
这是代码,主要取自上面的线程:
clear all
set obs 5
local vlist v0 v1 v2 v3 v4 v5
foreach v of local vlist {
generate `v' = runiform()
}
save country1.DTA, replace
save country2.DTA, replace
save country3.DTA, replace
global vlist_example v0 v1 v6 // v6 is not part of the dataset
foreach country in country1 country2 country3 {
local keeplist = ""
foreach i of global vlist_example {
capture confirm variable `i'
if !rc {
local "`keeplist' `i'"
}
}
keep `keeplist'
save `country'beta2.DTA, replace
}
但是,这会产生以下错误:
rc not found
r(111);
我希望这充分描述了我的问题,但如果有什么需要更多解释,请告诉我。