Variable erstellen aus Informationen zweier existierender V.

Fragen zu Stata Syntax und Do-Files.

Variable erstellen aus Informationen zweier existierender V.

Beitragvon Ulfi » Fr 11. Apr 2014, 10:43

Es existieren zwei Variablen aus denen die Informationen genutzt werden sollen, um eine neue Variable zu erstellen. Ich finde allerdings nichts darüber wie der Syntax für dieses konkrete Problem aussehen soll.

Variable x hat die Ausprägungen
1
2
3
4
5
.
.
.
59

Variable y dagegen besitzt konkrete Ausprägungen
1234
2345
5678
.
.
.
.
Also 59 verschiedene Ausprägungen.

Nun will ich eine Variable erstellen, die jeweils den 59 verschiendene Ausprägungen der Variable x eine bestimmte Ausprägung der Variable y zuordnet.

generate z = 1234 if x ==1
replace z = 2345 if x ==2
replace z =5678 if x ==3
etc.

für diesen Befehl will ich quasi eine Schleife nutzen, damit ich das nicht manuell machen muss.

Es wäre super wenn mir jemand weiterhilft

VIele Dank

Ulfi
Ulfi
 
Beiträge: 7
Registriert: So 29. Dez 2013, 17:48
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen aus Informationen zweier existierende

Beitragvon daniel » Fr 11. Apr 2014, 12:24

Was hast Du denn damit vor? Welche inhaltliche Frage willst Du später beantworten? Wie sieht die konkrete Datensturktur aus? Wie viele Beobachtungen hast Du? Was repräsentieren diese Beobachtungen (Personen, Haushalte, Bakterien, Jahre, ...)? Ein Auszug aus der Datenstruktur wäre sinnvol.

Ich tue mir schwer, hier einfach eine Syntax zu schreiben, weil die Gefahr hoch ist, dass ich etwas produziere was funktioniert, i.e. keine Fehlermeldung erzeugt, aber vermutlich nicht das ist, was Du wirkllich willst. Ist es z.B. Absicht, dass die Werte in Deinem Beispiel sowohl in x (1, 2, 3, ..., 59) als auch in y (1234, 2345, 5678, ...) aufsteigend (sortiert) sind? Dass also dem kleinsten Wert in x der kleinste in y entsprechen soll? der zweit kleinste dem zweit kleinsten usw.? Das ist nur einer von vielen möglichen Punkten, bei dem ich nicht sicher bin, dass es gewollt ist, was aber zentral wichtig ist für die konkrete Syntax.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen aus Informationen zweier existierende

Beitragvon Ulfi » Fr 11. Apr 2014, 15:58

ich will sampleweigths erzeugen und die erstellung der variable ist ein zwischenschritt dahin.

die variable x beschreibt 59 verschiedene gemeinden.
also die ausprägung 1 beschreibt springfield, die variable 2 new york etc.

und die variable y sind die zugehoerigen bevoelkerungszaheln der gemeinden (Demzufolge ist es nicht aufsteigend, dennoch muss jede bevoelkerungszahl (variable y) der richtigen gemeinde (variable x) zugeordnet werden)
Ulfi
 
Beiträge: 7
Registriert: So 29. Dez 2013, 17:48
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen aus Informationen zweier existierende

Beitragvon daniel » Fr 11. Apr 2014, 16:09

Hm. ich stelle mir den Datensatz so vor

Code: Alles auswählen
x        y
1        42
2        27
.        .


Dann ist doch die Zuordnung bereits vorliegend?

Ansonsten brauchst Du eine Regel (im einfachsten Fall schlicht zwei Listen), in denen die exakte Zuordnung beschrieben ist. Hier ist ein kleines Beispiel

Code: Alles auswählen
loc x 1 2 3 4
loc y 42 23 4223 2342

forv j = 1/4 {
        loc x_value : word `j' of `x'
        loc y_value : word `j' of `y'
        di "replace z = `y_value' if x == `x_value'"
}
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen aus Informationen zweier existierende

Beitragvon Ulfi » Di 15. Apr 2014, 10:03

vielen dank soweit...

du hast recht die Zuordnung liegt bereits vor wie du beschrieben hast. Die Frage ist jetzt, wie erstelle ich eine Variable in dem ich die ich den replace befehl nicht immer wieder eingeben muss.

Ich will mir also das eingeben folgender befehle ersparen

generate z = 42 if x =1
replace z =27 if x =2
replace z= () if x=3
replace z=() if x =4
etc.

wie sage ich stata, dass er den replace befehl automatisch wiederholt
Ulfi
 
Beiträge: 7
Registriert: So 29. Dez 2013, 17:48
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen aus Informationen zweier existierende

Beitragvon daniel » Di 15. Apr 2014, 13:10

Dein Vorhaben erscheint absolut sinnfrei.

du hast recht die Zuordnung liegt bereits vor wie du beschrieben hast.


Wenn das tatsächlich der Fall ist, dann gleicht die neu zu erstellende Variable z exakt der Variable y. Ein einfaches

Code: Alles auswählen
g z = y


genügt. Keine loops, kein -replace- keine -if- qualifier nötig.

Ansonsten schau Dir bitte mein Beipsiel genauer an. Die Technik geht daraus eindeutig und klar hervor.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen aus Informationen zweier existierende

Beitragvon Ulfi » Mo 12. Mai 2014, 13:10

du hast vollkommen recht, hatte irgendwie einen knoten im kopf....

aber vielen dank fuer deine muehe
Ulfi
 
Beiträge: 7
Registriert: So 29. Dez 2013, 17:48
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 0 Gäste