Neu in

Alias-Variablen über Rahmen hinweg

Höhepunkte

  • Einfacher Nur-Lese-Zugriff auf Variablen in verknüpften Rahmen

  • Sparen Sie Speicherplatz bei wiederholten Werten in großen Datensätzen

Stata unterstützt mehrere Datensätze im Speicher; jeder Datensatz befindet sich in einem Frame. In Stata 18 können Sie nun mit Variablen aus verschiedenen Frames arbeiten, als ob sie in einem einzigen vorhanden wären.

Wenn Datensätze miteinander in Beziehung stehen, können Sie ihre Rahmen mit dem Befehl frlink verknüpfen, um die Variablen zu identifizieren, die die Beobachtungen im aktuellen Rahmen mit den Beobachtungen im verbundenen Rahmen übereinstimmen.

Alias-Variablen, die mit dem neuen Befehl fralias add erstellt werden, definieren Verweise auf Variablen in verknüpften Rahmen. Diese Variablen benötigen nur sehr wenig Speicherplatz, da die Beobachtungen tatsächlich in einem anderen Rahmen gespeichert sind.

Stata behandelt Alias-Variablen wie jede andere Variable in Ihrem Datensatz, mit der Ausnahme, dass Sie ihre Werte nicht ändern dürfen. Wenn Sie für eine bestimmte Alias-Variable die Werte der entsprechenden Variable im verknüpften Frame ändern, sind die geänderten Werte automatisch verfügbar, wenn Sie die Alias-Variable das nächste Mal verwenden.

Wir wollen sehen, wie es funktioniert

Wir haben zwei Dateien, persons.dta und txcounty.dta, die miteinander in Beziehung stehen. persons.dta enthält Daten über Personen, die in Texas leben, und txcounty.dta enthält Daten über Landkreise in Texas. Die Variable countyid identifiziert die Bezirke in Texas in beiden Datensätzen.

Im Folgenden laden wir die Datensätze in getrennte Frames – die Personendaten in den aktuellen Frame und die Daten der texanischen Bezirke in einen neuen Frame namens txcounty.

Diese beiden Frames enthalten jeweils eine Variable namens countyid, die die texanischen Bezirke identifiziert. Wir gehen davon aus, dass der kodierte Wert für einen bestimmten texanischen Bezirk in diesen beiden Frames derselbe ist.

Wir verwenden frlink mit der Variable countyid, um die Beobachtungen im aktuellen Frame mit den Beobachtungen im Frame txcounty zu verknüpfen.

. frlink m:1 countyid, frame(txcounty)
  (all observations in frame default matched)

frlink erstellt eine neue Variable, die die Beobachtungen im aktuellen Frame denjenigen im verknüpften Frame zuordnet. In diesem Beispiel ist die neue Variable nach dem verknüpften Frame benannt, txcounty, aber Sie können mit der Optiongenerate() einen anderen Namen angeben.

Wir können Alias-Variablen einzeln oder in Gruppen erstellen. Wir entscheiden uns für *, eine gängige Abkürzung, die einem oder mehreren Zeichen in Variablennamen entspricht, um eine Alias-Variable für jede Variable im verknüpften Rahmen zu erstellen. Es gibt nur eine Variable (außer countyid) in dem verknüpften Rahmen, also erhalten wir eine neue Alias-Variable im aktuellen Rahmen.

.fralias add *, from(txcounty)
  (variable not aliased from linked frame: countyid)
  (1 variable aliased from linked frame)

Wir geben fralias describe ein, um eine Beschreibung aller Alias-Variablen im aktuellen Frame zu erhalten.

fralias describe hat unsere neue Alias-Variable gefunden und meldet, dass ihr Name median_income lautet; ihre Zielvariable ist eine float-Variable mit dem Namen median_income, die sich in dem Frame mit dem Namen txcounty befindet und mit dem aktuellen Frame über die Variable txcounty verbunden ist.

Aus den obigen Aufrufen von describe geht hervor, dass der aktuelle Frame 20 Beobachtungen und der verknüpfte Frame txcounty acht Beobachtungen enthält. Der Speicherbedarf für die Alias-Variable median_income besteht aus zwei Variablenmerkmalen, die zum Speichern des Namens der Verknüpfungsvariable und des Namens der Zielvariable im verknüpften Frame verwendet werden. Wenn anstelle der Erstellung eines Alias für median_income mit frget eine Kopie von median_income im aktuellen Frame erstellt wird, beträgt der Speicherplatzbedarf für die neue float-Variable vier Byte für jede Beobachtung im aktuellen Frame. Für eine neue double-Variable sind es acht Byte für jede Beobachtung. Alias-Variablen, die mit fralias add erstellt werden, haben im Vergleich zu den mit frget erstellten Variablen einen geringen festen Speicherplatzbedarf.

Wir können nun die Alias-Variable median_income wie jede andere Variable verwenden, sofern wir nicht versuchen, ihre Werte zu ändern. Fassen wir ihre Werte zusammen.

Angenommen, wir müssen einige Werte des median_income ändern. Wir nehmen Änderungen an median_income im Frame txcounty vor. Diese Änderungen sind automatisch für die Alias-Variable im aktuellen Frame verfügbar.