Я представлю упрощенную версию того, что я хочу сделать. Я знаю, как сделать это легко в SAS, но не в Stata. Предположим, я пытаюсь создать «плохую» двоичную переменную = 1, если наблюдение классифицируется как неудовлетворительное и 0 в противном случае. Я хочу иметь две классификации, один основан на реальных доходах, а другой основан на реальном потреблении (это переменные в наборе данных).Что такое Stata-эквивалент этого макроса SAS?
Макрос SAS будет
%MACRO poverty_bin(type=, measure=)
DATA dataset;
SET dataset;
IF &measure. <= poverty_line THEN poor&type. = 1 ELSE poor&type. = 0;
RUN;
%MEND
%poverty_bin(type=con, measure=real_consumption);
%poverty_bin(type=inc, measure=real_income);
, которые должны создать два бинарных переменных poor_con
и poor_inc
.
Я понятия не имею, как это сделать в Стате. Я пытался делать что-то подобное, чтобы посмотреть, если вложенные foreach
является то, что я ищу:
foreach x of newlist con inc {
foreach y of newlist real_income real_consumption{
display "`x' and `y'"
}
}
Но это выдает сообщение об ошибке, говорящее «переменная real_income уже определен»
Привет, спасибо за ваш ответ, но я знаю, как это сделать, чтобы создать двоичную переменную. Я просто привел это в качестве примера, чтобы изложить мой вопрос о том, как написать макрос stata, эквивалентный макросу SAS вообще. Я знаю, что они оба имеют довольно разную процедуру обработки данных. Я знаком с циклом над списком переменных и т. Д. В Stata, но не знаком с тем, как включить список строковых переменных, которые могут быть объединены в основную функцию макроса. Я также не знаю, есть ли способ определить макрофункцию в Stata, как в SAS (так как я называю это «нищета» здесь). – Pukitta
Как уже было сказано, вы можете написать цикл или даже программу для этого. –