Úloha:
- Potřebujeme upravit value labely hodnot proměnných v datovém souboru. Obvykle nám stačí úprava aktuálních textů a nepotřebujeme tvořit úplně novou value label syntaxi.
- Abychom nemuseli celou syntaxi psát od začátku, zde je syntaxe, která v rozumně strukturované podobě vyextrahuje aktuální labely hodnot z SPSS dat a pak už jen stačí tento výstup převést do value label syntaxe a tu upravit podle potřeby.
Jak to funguje:
- V syntaxi musíte jednak na začátku syntaxe upravit cestu ke zdrojovému SPSS souboru a také na konci syntaxe upravit cestu k výstupnímu XLS souboru.
- Tato syntaxe nejprve vyřadí všechny textové proměnné. Následně vyřadí proměnné, které nemají value label (např. otázky uvádějící počet).
- Následně shlukne všechny proměnné se stejným value labelem k sobě.
- A pak toto vyexportuje ve strukturované podobě do formátu XLS.
- Z exportovaného XLS souboru si už každý může pomocí vzorců připravit SPSS syntaxi. Nebo může tento export přímo vložit do naší aplikace “Data Manager” pro zpracování dat a v ní jen upravit texty a vše ostatní je zpracováno automaticky.
Potřebovali byste něco udělat jinak?
- Pokud používáte specifické nástroje pro zpracování dat a hodilo by se Vám, aby export byl strukturován jinak, neváhejte nám napsat v sekci ”napište nám” a za rozumnou cenu Vám formát exportu upravíme do požadované podoby.
Zde je syntaxe pro extahování value labels z SPSS dat
dataset close all.
get file = "...path...\NAME_data_00.sav".
dataset name data.
numeric @var_start @var_end (f1).
match files
/file = *
/keep = @var_start all.
execute.
sort variables by type.
execute.
match files
/file = *
/keep = @var_start to @var_end.
execute.
delete variables @var_start @var_end.
add value labels all -937951463476 "@@value_label@@delete@@".
output new name = labels.
output activate labels.
dataset declare data_labels.
oms /select all /exceptif subtypes = ['Notes' 'Titl*' 'Warn*']
/destination format = sav outfile = data_labels.
codebook all /varinfo valuelabels /statistics none.
omsend.
output close labels.
dataset activate data_labels.
select if (Value <> "@@value_label@@delete@@").
execute.
rename variables (Label_ = var)(Value = lab).
numeric val id (f12).
string vars labels var_val (a10000).
alter type Var2 (f12).
rename variables (Var2 = val).
compute id = $casenum.
execute.
delete variables Command_ Subtype_ Var1.
do if (id=1 or var<>lag(var)).
compute labels = concat(ltrim(rtrim(string(val,f12))),"-",ltrim(rtrim(lab))).
else.
compute labels = concat(ltrim(rtrim(lag(labels))),"|",ltrim(rtrim(string(val,f12))),"-",ltrim(rtrim(lab))).
end if.
execute.
aggregate /outfile = * mode=addvariables overwritevars=yes /break = var /labels=last(labels).
do if (char.rindex(var,"_")>0).
compute vars = char.substr(var,1,char.rindex(var,"_")-1).
else.
compute vars = ltrim(rtrim(var)).
end if.
execute.
sort cases by vars (a).
if (vars=lag(vars)) id = lag(id).
execute.
sort cases by id (a).
do if ($casenum=1).
compute id = 1.
else if (labels<>lag(labels)).
compute id = lag(id) + 1.
else.
compute id = lag(id).
end if.
execute.
dataset activate data_labels.
dataset copy data_labels.
dataset name data_labels_vars.
dataset activate data_labels.
sort cases id val (a).
compute id_pom=0.
do if ($casenum=1 or val<>lag(val) or id<>lag(id)).
compute id_pom = 1.
end if.
select if (id_pom=1).
compute var_val = ltrim(rtrim(string(val,f12))).
execute.
delete variables var val vars labels id_pom.
dataset activate data_labels_vars.
sort cases id (a).
compute id_pom=0.
do if ($casenum=1 or var<>lag(var) or id<>lag(id)).
compute id_pom = 1.
end if.
select if (id_pom=1).
execute.
do if ($casenum=1 or vars<>lag(vars) or labels<>lag(labels)).
compute var_val = ltrim(rtrim(var)).
else.
compute var_val = concat(ltrim(rtrim(lag(var_val)))," ",ltrim(rtrim(var))).
end if.
execute.
aggregate /outfile = * mode=addvariables overwritevars=yes /break = vars labels /var_val=last(var_val).
compute id_pom=0.
do if ($casenum=1 or var_val<>lag(var_val)).
compute id_pom = 1.
end if.
select if (id_pom=1).
execute.
delete variables var val lab vars labels id_pom.
add files
/file = data_labels_vars
/file = data_labels
.
execute.
dataset name data_labels_final.
dataset activate data_labels_final.
sort cases id (a).
save translate outfile = "...path...\NAME_data_00_value_labels.xlsx"
/type = xls /version = 12 /replace
/keep = var_val lab.
dataset activate data.
dataset close data_labels.
dataset close data_labels_vars.
dataset close data_labels_final.