Schleife? Bestehende Variablen umkodieren/-benennen

Fragen zu Stata Syntax und Do-Files.

Schleife? Bestehende Variablen umkodieren/-benennen

Beitragvon statnoob » Mi 6. Jun 2018, 18:42

Um es ganz kurz zu machen:

Ich habe 12 Variablen, die ich jedoch recoden will - soweit kein Problem. Dafür habe ich eine Schleife erstellt, die funktioniert.

Kann ich auch das Erstellen von den neuen Variablen in einer Schleife ausführen? (vgl. Syntax unten - ich hoffe mein Problem wird einigermaßen deutlich. Ich will mir im Prinzip die vielen Zeilen sparen, weil das dann so unübersichtlich und lang wird im Do-File)


foreach var of varlist V58-V69 {
recode `var' 5=-2 4=-1 3=0 2=1 1=2
label values `var' Cluster
}



gen Volksmusik = V58
label variable Volksmusik "Volksmusik hören"
gen Volksmusik_anderer_Kulturen = V59
label variable Volksmusik_anderer_Kulturen "Volksmusik anderer Kulturen hören"
gen Schlager = V60
label variable Schlager "Schlager hören"
gen Pop = V61
label variable Pop "Pop hören"
gen Rock = V62
label variable Rock "Rock hören"
gen Heavy_Metal = V63
label variable Heavy_Metal "Heavy Metal hören"
gen Elektro = V64
label variable Elektro "Elektro hören"
gen HipHopSoulFunk = V65
label variable HipHopSoulFunk "Hip Hop, Soul, Reaggae hören"
gen Klassik = V66
label variable Klassik "Klassische Musik hören"
gen Oper = V67
label variable Oper "Oper hören"
gen Musical = V68
label variable Musical "Musical hören"
gen Jazz = V69
label variable Jazz "Jazz hören"



Vielen Dank schon mal.
statnoob
 
Beiträge: 4
Registriert: So 20. Jul 2014, 14:10
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Schleife? Bestehende Variablen umkodieren/-benennen

Beitragvon statnoob » Fr 8. Jun 2018, 23:28

Um auch hier ein Update zu geben... einen Teil meiner Antwort habe ich hier gefunden:

http://data.library.virginia.edu/stata-basics-foreach-and-forvalues/


Und hier den Rest:
https://sites.google.com/site/imirkina/cookbook-stata/12-ways-to-name-and-label-variables-in-stata (v.a. Methode 11)

Code: Alles auswählen
ssc install labutil2

labvars v1 v2 v3 "First label" "Second label" "Third label"

labvars v1 "First label" v2 "Second label" v3 "Third label", alternate



In meinem Fall sieht das dann insgesamt so aus:

Code: Alles auswählen
* Schleife für Genres:
foreach x of varlist V58-V69 {
recode `x' 5=-2 4=-1 3=0 2=1 1=2
}

local x 57
local Musikgenres Volksmusik Volksmusik_anderer_Kulturen Schlager Pop Rock Heavy_Metal Elektro HipHopSoulFunk Klassik Oper Musical Jazz
foreach m of local Musikgenres {
local x = `x' + 1
gen `m' = V`x'
}

label define Cluster -2"sehr ungern" 2"sehr gern"
foreach x of varlist Volksmusik-Jazz {
label values `x' Cluster
}

ssc install labutil2 /* labutil12 installieren, um das gleichzeitige Labeln mehrerer Variablen zu ermöglichen */
labvars Volksmusik Volksmusik_anderer_Kulturen Schlager Pop Rock Heavy_Metal Elektro HipHopSoulFunk Klassik Oper Musical Jazz ///
"Volksmusik hören" "Volksmusik anderer Kulturen hören" "Schlager hören" "Pop hören" "Rock hören" "Heavy Metal hören"  ///
"Elektro hören" "Hip Hop, Soul, Reaggae hören" "Klassische Musik hören" "Oper hören" "Musical hören" "Jazz hören"


Ist schon relativ kompakt - aber vermutlich würde es irgendwie noch etwas kürzer gehen. Sollte mir soweit aber dann reichen.
statnoob
 
Beiträge: 4
Registriert: So 20. Jul 2014, 14:10
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron