Для нескольких стран у меня есть один набор данных, и я хочу сохранить список переменных (указанных в глобальном vlist
) для каждой из них. Некоторые переменные не существуют в некоторых странах.
Я хочу, чтобы 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);
Надеюсь, это в достаточной мере описывает мою проблему, но, пожалуйста, дайте мне знать, если что-то требует более подробного объяснения.