Forvalues, Variablenwerte / -namen, If: Problem

Fragen zu Stata Syntax und Do-Files.

Forvalues, Variablenwerte / -namen, If: Problem

Beitragvon saherzog » Sa 5. Jan 2013, 20:19

Guten Abend

Ich habe ein kleines Problem mit meinem Stata Code, dass ich einfach nicht weg bringe. Das Problem ist das Folgende:

Ich habe eine Variable "C_year", welche über alle Beobachtungen hinweg zwischen 1998 und 2008 (Jahre) ist. Zudem habe ich Variablen der T_OCF_1994, T_OCF_1996, ..., T_OCF_2012 (welche Werte für alle Beobachtungen enthalten).

Ich möchte nun neue Variablen generieren (bzw ich hab dies gmacht) und will diese automatisch füllen bzw. replacen. Z.B. die neue Variable mit dem Namen T_OCF_m1 soll den Wert von z.B. T_OCF_2001 übernehmen, wenn bei der entsprechenden Beobachtung C_year = 2002 ist (oder von T_OCF_2007 wenn C_year = 2008 ist, etc. Also immer um ein Jahr versetzt). Ich hoffe meine Ausführungen sind klar.

Eine Scheife wie diese:

local j=1997
forv i=1998/2008 {
replace T_OCF_m1 = T_OCF_`j' if C_year == `i'
local j `=`j'+1'
}

gibt mir immer falsche Ergebnisse raus (ich habe es manuell mal gemacht, möchte es aber eleganter haben). Ich habe es auch ohne local versucht (also nur mit Werten für i aus der Schleife), ich komme aber gar nicht weiter. Ich weiss nicht, an was das liegen könnte, vielleicht dass man Schlaufenwerte (also i) in der IF Bedingung verwendet.

Wie könnte das funktionieren?

lg

Sascha
saherzog
 
Beiträge: 2
Registriert: Sa 5. Jan 2013, 19:52
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Forvalues, Variablenwerte / -namen, If: Problem

Beitragvon daniel » Sa 5. Jan 2013, 20:57

Ich habe das nicht zu Ende gelesen, werde es aber nachholen, wenn das nötig ist. Bestehst Du auf dem wide Format (i.e. T_OCF_<Jahr>) anstelle des long Formats (i.e. eine einzige Variable T_OCF)? Solche Probleme lassen sich im long Format meist einfacher Lösen (z.b. mit time-series operators).

Um die Datenstruktur zu ändern lies bei -reshape- nach.

Am besten wäre es in jedem Fall, wenn Du ein reproduzierbares Beispiel erstellen könntest. Dazu kannst Du mein ado verwenden (add-ons-und-ado-files-f20/beispieldatensatze-erzeugen-t232.html).
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: Forvalues, Variablenwerte / -namen, If: Problem

Beitragvon saherzog » So 6. Jan 2013, 12:35

Hallo daniel

Danke für Deine Tipps! Ich habe es mittlerweile irgendwie hingekriegt... Ich habe einen kleinen Fehler gemacht mit den Variablen. Ich belasse das ganze jetzt im wide Format, das ist quasi "historisch gewachsen" während meiner Arbeit (ich musste einige Datensätze aus SDC Platinum und Compustat zusammenführen und habe dabei schon den Doktor in Excel gemacht...) :lol: Für die Analyse bei mir scheinen beide Wege zu funktionieren, im Nachhinein wäre es vielleicht doch intelligenter gewesen den anderen Weg rum... Wie auch immer, wieder etwas gelernt für das nächste Mal...

Viele Grüsse

Sascha
saherzog
 
Beiträge: 2
Registriert: Sa 5. Jan 2013, 19:52
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