RECODE

Příkaz RECODE slouží ke změně některých nebo všech hodnot proměnné. Nové hodnoty mohou být uloženy ve stejné nebo nové proměnné.

Jednoduchý příklad:

RECODE var1 var2 (1,2 = 1) (3,4 = 2).

Složitější příklad:

RECODE var1 (1,2 = 1) (3 thru 8 = 2) (missing = 99) (else = copy)
INTO var1new.

Obecně

Předpokládejme, že máme proměnnou famimpor s hodnotami 1, 2, 3 a 4, která měří, jak důležité je pro respondenta mít rodinu.

RECODE famimpor (4=3).

Tím se změní všechny výskyty hodnoty 4 na hodnotu 3.

Předpokládejme, že máme proměnnou famimpor, která měří, jak důležité je pro respondenta mít rodinu. Původní hodnota 3 zůstává nezměněna. (Pokud máte štítky hodnot, možná byste je nyní měli odpovídajícím způsobem změnit). Všechny ostatní hodnoty zůstávají také beze změny.

RECODE famimpor (1,2 =1) (3,4 = 2).

Tím se vytvoří dichotomická proměnná s hraničním bodem mezi 2 a 3.

RECODE famimpor (1=4) (2=3) (3=2) (4=1).

Tím se změní pořadí hodnot. Všimněte si, že toho lze dosáhnout snadněji pomocí příkazu COMPUTECOMPUTE famimpor = 5 - famimpor.). To může být užitečné, pokud existuje mnoho kategorií.

Vytváření nových proměnných

Jedním problémem je, že všechny výše uvedené příklady mění původní hodnoty proměnné. Měli byste tak učinit pouze v případě, že buď můžete z nových hodnot rekonstruovat původní hodnoty (to by bylo možné pouze v posledním příkladu!), nebo pokud jste si zatraceně jisti, že máte platnou kopii vaší datové sady jinde. Naštěstí můžete vytvořit nové proměnné pomocí příkazu RECODE přidáním INTO NEWVAR. Viz následující příklady.

RECODE famimpor (1,2 =1) (3,4 = 2) INTO famimpod.

Tímto vytvoříte dichotomickou proměnnou s hraničním bodem mezi 2 a 3. Stará proměnná však zůstane zachována a dichotomická proměnná se přidá do datového souboru s názvem famimpod (s „D“, které označuje, že máte dichotomickou proměnnou. Takovéto memotechnické pomůcky používám poměrně často, ale vy samozřejmě nemusíte)

Všimněte si však, že při ZÁZNAMU DO nové proměnné musíte dodržovat určitá opatření. V tomto případě si musíte být jisti, že nová proměnná má všechny platné hodnoty, které v ní chcete mít. Pokud příkaz RECODE pojmenuje pouze část hodnot, budou všechny ostatní hodnoty považovány za systémové chybějící hodnoty. Přesto existuje snadný způsob, jak se s tímto problémem vypořádat.

PRAVIDLA: RECODE famimpor (4=3) INTO famimpon.

Tímto způsobem by se všechny výskyty hodnoty 4 změnily na hodnotu 3. Všechny ostatní hodnoty by však byly považovány za systémově chybějící. Zde je lepší způsob:

RECODE famimpor (4=3) (ELSE=COPY) INTO famimpon.

Tím se změní všechny výskyty hodnoty 4 na hodnotu 3 a všechny ostatní hodnoty se zkopírují do nové proměnné. Samozřejmě můžete provést libovolný počet explicitních překódování a zbytek pak řešit pomocí ELSE=COPY.

Část ELSE příkazu RECODE není omezena na právě vysvětlený případ „COPY“. Můžete ji použít i s explicitními hodnotami, jako v následujícím příkladu:

RECODE famimpor (4,3=2) (ELSE=1) INTO famimpor.

Jedním problémem příkazu RECODE INTO však je, že se automaticky nevytvářejí popisky proměnných a hodnot (jak by měly?). Nezapomeňte tedy novou proměnnou označit.

Několik proměnných

může být řešeno jedním RECODE příkazem, pokud mají být všechny proměnné ovlivněny stejným způsobem, jako v následujícím příkladu.

RECODE famimpor workimpo chldimpo (4,3=2) (ELSE=1).

Pokud však chcete RECODE tyto proměnné VLOŽIT do nových proměnných, je pro každou proměnnou nutný samostatný RECODE příkazový řádek.

Zpracování chybějících hodnot

Chybějící hodnoty lze řešit pomocí klíčových slov „sysmis“ nebo „missing“.

Předpokládejme, že kromě hodnot 1 až 4 existují také hodnoty 8 a 9, které jsou definovány jako chybějící hodnoty. Zde je několik příkladů a jejich funkce.

RECODE famimpor (missing = 8).

Všechny chybějící hodnoty (tj. hodnoty 8 a 9 a možná také systémové chybějící hodnoty) budou mít hodnotu 8. Hodnota 8 bude stále definována jako chybějící.

RECODE famimpor (missing = 7).

Všechny chybějící hodnoty (tj. hodnoty 8 a 9 a možná také systémové chybějící hodnoty) budou mít hodnotu 7. Hodnota 7 nebude definována jako chybějící!

Pokud máte systémové chybějící hodnoty a chcete překódovat pouze tyto hodnoty na jinou hodnotu, můžete místo „chybějící“ použít klíčové slovo „sysmis“.

RECODE famimpor (sysmis = 7).

Pokud jste definovali hodnoty 8 a 9 jako chybějící, hodnota 7 opět nebude rozpoznána jako (dříve) chybějící hodnota. Možná budete chtít buď nyní definovat 7 jako chybějící, nebo přiřadit označení hodnoty, které vám řekne význam 7.

Zjednodušení

Často je třeba řešit několik hodnot proměnné. Tento proces vám usnadní některá klíčová slova.

RECODE famimpor (nejnižší až 3 = 3).
RECODE famimpor (2 až nejvyšší = 2).

První příkaz překóduje všechny hodnoty od nejnižší hodnoty až po hodnotu 3 (včetně) do hodnoty 3. Druhý příkaz překóduje všechny hodnoty od nejnižší hodnoty až po hodnotu 3 (včetně) do hodnoty 3. Druhý příkaz překóduje všechny hodnoty od hodnoty 2 do nejvyšší hodnoty (včetně) do hodnoty 2. Všimněte si, že „nejnižší“ lze zkracovat jako „lo“ a „nejvyšší“ jako „hi“. POZOR: Za předpokladu, že hodnoty 8 a 9 jsou stále definovány jako chybějící hodnoty, budou v posledním příkladu překódovány na hodnotu 2 (a samozřejmě již nebudou definovány jako chybějící).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.