local funktioniert nicht wie geplant

Fragen zu Stata Syntax und Do-Files.

local funktioniert nicht wie geplant

Beitragvon rjoebges » Do 15. Aug 2013, 11:39

Hallo Leute,

ich arbeite an einer Panelstudie und bekomme jede Woche mehrere Excel-sheets, die ich aufbereite. Jetzt hab ich verschiedene Datumsvariablen (nachd1, nachd2 usw) die ich in ein anderes Format bringen will. Geht auch gut mit

local i=1
foreach x of varlist nachd1 nachd2 nachd3 usw{
format nachd`i' %tc
local i=`i'+1
}

Das funktioniert wunderbar, jetzt wechselt allerdings die Anzahl der Datumsvariablen jede Woche und ich will ein übergreifendes do-file schreiben, wo sich die Formatierung automatisch auf alle Datumsvariablen bezieht, eben auf genau so viele wie in der Woche vorhanden sind. Wenn ich allerdings meine Syntax etwas veränder mit

local i=1
foreach x of varlist nachd`i'{
format nachd`i' %tc
local i=`i'+1
}

wird nur die Variable nachd1 geändert, der Rest bleibt im alten Format. Wäre super wenn mir jemand weiterhelfen kann
Vielen Dank im Voraus
Raphael
rjoebges
 
Beiträge: 9
Registriert: Do 15. Aug 2013, 11:22
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: local funktioniert nicht wie geplant

Beitragvon daniel » Fr 16. Aug 2013, 10:31

Ok, Du hast das Konzept in etwa verstanden, aber die Umsetzung ist noch eher holprig.

Code: Alles auswählen
local i=1
foreach x of varlist nachd1 nachd2 nachd3 usw{
format nachd`i' %tc
local i=`i'+1
}

Das funktioniert wunderbar,


Aber eher zufällig. Du solltest entweder

Code: Alles auswählen
forv i = 1/3 {
    format nachd`i' %tc
}


oder aber

Code: Alles auswählen
foreach x of varlist nachd1 nachd2 nachd3 {
    format `x' %tc
}


coden. Die Kombination ist unsinnig.

Code: Alles auswählen
local i=1
foreach x of varlist nachd`i'{
format nachd`i' %tc
local i=`i'+1
}


Der loop läuft genau ein einziges Mal. Nämlich für jede Variable, der Variablenliste nachd`i'. Da i den Wert 1 annimmt (local i = 1) läuft der loop für die eine Variable nachd1.


eben auf genau so viele wie in der Woche vorhanden sind.

Woher weißt Du, wieviele in einer Woche vorhanden sind? Wo ist diese Information enthalten?
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: local funktioniert nicht wie geplant

Beitragvon rjoebges » Fr 16. Aug 2013, 11:16

Danke erstmal für die Antwort.
Genau die Information wieviele in einer Woche enthalten sind, ist das Problem, da diese jede Woche wechseln, ich kann das manuell nachschauen, jede Woche aufs neue in dem Excel-sheet.
Da ich aber eben was übergreifendes schreiben möchte, dachte ich, dass das mit einem local funktioniert, der automatisch durchzählt
Oder gibts etwas wie ein unendlich Zeichen, welches dann bis zum Ende der variablen durchzählt? Was ich dann nach dem Muster

forv i = 1/unendlich {
format nachd`i' %tc
}

basteln kann?
rjoebges
 
Beiträge: 9
Registriert: Do 15. Aug 2013, 11:22
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: local funktioniert nicht wie geplant

Beitragvon daniel » Fr 16. Aug 2013, 12:53

Wenn Du einen loop bis unendelich schreiben würdest, würde das do-file unendlich lange laufen.

Wie schaust Du manuell nach, wie viele in einer Woche vorhanden sind? Das musst Du Dir genau klar machen, dann kannst Du es vermutlich in Stata übersetzen.

Heißen die Variablen alle gleich? Wäre sowas möglich

Code: Alles auswählen
unab vars : nachd*
foreach x of loc vars {
    form `x' %tc
}
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: local funktioniert nicht wie geplant

Beitragvon rjoebges » Sa 17. Aug 2013, 14:40

ich werds am Montag mal ausprobieren, von Zuhause hab ich keinen Zugriff.
Vielen Dank auf jeden Fall!
rjoebges
 
Beiträge: 9
Registriert: Do 15. Aug 2013, 11:22
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 1 Gast