Novinky ve

Pseudonymy proměnných napříč snímky

Nejdůležitější informace

  • Snadný přístup k proměnným v propojených rámcích pouze pro čtení

  • Úspora paměti při opakovaných hodnotách v obrovských souborech dat

Stata podporuje více datových sad v paměti; každá datová sada se nachází v rámečku. Ve Stata 18 nyní můžete pracovat s proměnnými z různých rámců, jako by existovaly v jednom.

Pokud jsou datové soubory příbuzné, můžete jejich rámce propojit pomocí příkazu frlink, který určí proměnné, které odpovídají pozorováním v aktuálním rámci s pozorováními v příbuzném rámci.

Proměnné Alias, vytvořené novým příkazem fralias add, definují odkazy na proměnné v propojených rámcích. Tyto proměnné zabírají velmi málo paměti, protože pozorování jsou ve skutečnosti uložena v jiném rámci.

Stata zachází s aliasovými proměnnými jako s jakoukoli jinou proměnnou v datovém souboru s tím rozdílem, že není dovoleno měnit jejich hodnoty. Pokud pro danou aliasovou proměnnou změníte hodnoty příslušné proměnné v propojeném rámci, budou změněné hodnoty automaticky k dispozici při dalším použití aliasové proměnné.

Podívejme se, jak to funguje

Máme dva soubory, persons.dta a txcounty.dta, které spolu souvisejí. persons.dta obsahuje údaje o osobách žijících v Texasu a txcounty.dta obsahuje údaje o okresech v Texasu. Proměnná countyid identifikuje okresy v Texasu v obou souborech dat.

V následujícím textu načteme soubory dat do samostatných rámců – údaje o osobách do aktuálního rámce a údaje o texaských okresech do nového rámce s názvem txcounty.

 

Každý z těchto dvou rámců obsahuje proměnnou s názvem countyid, která identifikuje texaské okresy. Předpokládáme, že kódovaná hodnota pro daný texaský okres je v těchto dvou rámcích stejná.

K propojení pozorování v aktuálním rámci s pozorováními v rámci txcounty použijeme frlink s proměnnou countyid.

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

frlink vytvoří novou proměnnou, která mapuje pozorování v aktuálním snímku na pozorování v propojeném snímku. V tomto příkladu je nová proměnná pojmenována podle propojeného rámce, txcounty, ale můžete zadat jiný název pomocí volby generate().

Proměnné alias můžeme vytvářet po jedné nebo ve skupinách. Rozhodneme se použít *, běžnou zkratku, která odpovídá jednomu nebo více znakům v názvech proměnných, a vytvoříme alias proměnné pro každou proměnnou v propojeném rámečku. V propojeném rámečku je pouze jedna proměnná (kromě countyid), takže v aktuálním rámečku získáme jednu novou aliasovou proměnnou.

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

Zadáním příkazu fralias describe zobrazíme popis všech aliasových proměnných v aktuálním rámci.

fralias describe našel naši novou aliasovou proměnnou a hlásí, že se jmenuje median_income; její cílovou proměnnou je proměnná float, která se rovněž jmenuje median_income, nachází se v rámci s názvem txcounty a je propojena s aktuálním rámcem prostřednictvím proměnné txcounty.

Připomeňme si z výše uvedených volání příkazu describe, že aktuální rámec obsahuje 20 pozorování a propojený rámec txcounty obsahuje osm pozorování. Paměťová stopa aliasové proměnné median_income se skládá ze dvou charakteristik proměnných, které slouží k uložení názvu propojené proměnné a názvu cílové proměnné v propojeném rámci. Pokud bychom místo vytvoření aliasu pro median_income použili frget k vytvoření kopie median_income v aktuálním rámci, je paměťová stopa pro novou proměnnou float čtyři bajty pro každé pozorování v aktuálním rámci. Pro novou proměnnou double je to osm bajtů pro každé pozorování. Proměnné alias vytvořené pomocí fralias add mají malou pevnou paměťovou stopu ve srovnání s proměnnými vytvořenými pomocí frget.

Nyní můžeme alias proměnné median_income používat jako jakoukoli jinou proměnnou, pokud se nepokusíme změnit její hodnoty. Shrňme si její hodnoty.

Předpokládejme, že potřebujeme změnit některé hodnoty median_income. Změny median_income provedeme v rámci txcounty. Tyto změny jsou automaticky dostupné pro proměnnou alias v aktuálním rámci.