Ich werde die vereinfachte Version von dem, was ich tun möchte, vorstellen. Ich weiß, wie man es leicht in SAS macht, aber nicht in Stata. Nehmen wir an, ich versuche eine "schlechte" Binärvariable = 1 zu erstellen, wenn eine Beobachtung als schlecht und 0 als schlecht eingestuft wird. Ich möchte zwei Klassifikationen haben, eine basiert auf echtem Einkommen und eine andere basiert auf echtem Konsum (dies sind Variablen im Datensatz).Was ist das Stata-Äquivalent dieses SAS-Makros?
würde das SAS Makro
%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);
sein, die zwei Binärgrößen poor_con
und poor_inc
erstellen soll.
Ich habe keine Ahnung, wie man das in Stata macht. Ich habe versucht, so etwas wie dies zu tun, nur um festzustellen, ob foreach
verschachtelt ist das, was ich suche:
foreach x of newlist con inc {
foreach y of newlist real_income real_consumption{
display "`x' and `y'"
}
}
Aber es gibt eine Fehlermeldung „Variable real_income bereits definiert“
Hallo, danke für deine Antwort, aber ich weiß wie man eine solche binäre Variable erzeugt. Ich habe es nur als Beispiel gegeben, um meine Frage zu stellen, wie man ein Stata-Makro schreibt, das einem SAS-Makro entspricht. Ich weiß, dass sie beide ziemlich unterschiedliche Datenverarbeitungsprozedur haben. Ich bin vertraut mit dem Looping über eine Variablenliste und so in Stata, aber nicht vertraut mit, wie eine Liste der String-Variable, die in die Hauptmakrofunktion verkettet werden kann, zu integrieren. Ich weiß auch nicht, ob es eine Möglichkeit gibt, eine Makrofunktion in Stata wie in SAS zu definieren (wie ich hier "armut_bin" nenne). – Pukitta
Wie bereits erwähnt, könnte man dafür eine Schleife oder sogar ein Programm schreiben. –