Stop/Break/Pause

Fragen zu Stata Syntax und Do-Files.

Stop/Break/Pause

Beitragvon Paco » Do 20. Feb 2014, 16:33

Hallo,

Ich doktor grad an einer viel zu lang geratenen Do-File rum und bin auch nach langem Suchen nicht schlauer als zuvor. Ich habe zwei Anliegen und hoffe, dass man mir helfen kann:

1.) Da das Script als solches durch seine Länge zu unübersichtlich geworden ist, würde ich gerne so etwas wie "stop"-Befehle einbinden. z.B. Ich drücke den Play-Button. Das Do-File läuft durch bis zu einem bestimmten Punkt X, dann kommt der Stopbefehl, das Script pausiert und wird erst nach einem Befehl von diesem Punkt aus fortgeführt - Ich möchte nicht die Buttons nutzen. Im Idealfall wäre es sogar noch so, dass ich über "di "Drücken Sie Taste XY um fortzusetzen"" aufgefordert werde.
Das ganze ist notwendig, weil ich aufgrund der bis zu diesem Punkt durchgeführten Schritte, händisch einige Zeilen nachtragen muss, im Anschluss soll das Do-File wieder seine Arbeit verrichten.

2.) Der Datensatz, auf den die Prozeduren angewandt werden sollen, ist das "Merge"-Produkt verschiedener kleinerer Datensätze. Dementsprechend sind im Do-File die Prozeduren logisch nach den einzelnen Bereichen, auf die sie angewandt werden sollen, sortiert. Könnte ich diese kleineneren Teilabschnitte auslagern und in einer übergeordneten Do-File alle anderen Do-Files einbinden? Ist es sinnvoll eine Art "Meta"-Do-File zu erstellen?

Vielen lieben Dank!
Grüße, Paco
Paco
 
Beiträge: 5
Registriert: Do 20. Feb 2014, 16:16
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stop/Break/Pause

Beitragvon daniel » Do 20. Feb 2014, 16:46

Zu (1). Füge an die Stellen, an denen Du eine Unterbrechung wünschst

Code: Alles auswählen
se more on
di "press any key or click on -more- to continue"
more
se more off


Zu (2). Das kann sinnvoll sein. Do-files können einfach andere do-files aufrufen. Schau mal unter -help do- und -help run- nach. Das Grundprinzip ist etwa

Code: Alles auswählen
do merge1.do
do megre2.do
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: Stop/Break/Pause

Beitragvon Paco » Fr 21. Feb 2014, 13:52

Funktioniert wie gewünscht. Super! Danke!!!
Paco
 
Beiträge: 5
Registriert: Do 20. Feb 2014, 16:16
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stop/Break/Pause

Beitragvon Paco » Do 27. Feb 2014, 12:39

Eine Frage hätte ich doch noch:

Ist es möglich, dass ich in dem Befehl zum Stoppen/Fortsetzen des dofiles exakt festlege welche Taste gedrückt bzw. welcher Text eingegeben werden muss, damit die Ausführung fortgesetzt wird?

Vielen Dank und Grüße
Paco
Paco
 
Beiträge: 5
Registriert: Do 20. Feb 2014, 16:16
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stop/Break/Pause

Beitragvon daniel » Do 27. Feb 2014, 13:01

Lässt sich vielleicht programmieren, aber ich sehe nicht, wesshalb sich dieser Aufwand lohnen sollte.

Schau mal bei

Code: Alles auswählen
help pause


rein.
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: Stop/Break/Pause

Beitragvon Limerick » Fr 28. Feb 2014, 12:08

Hallo,

Ich hab ein ähnliches Problem. Ich möchte gerne die Pause in einer Bedingung einsetzen, etwa wie folgt:

list Var1 Var2 if (Var3=="Ausdruck")
if Var3=="Ausdruck" {
pause on
}
else {
pause off
}
pause Nachtragen fehlender Codes - Fortsetzung: Gebe "End" oder "q" ein!
// Hier folgt ein di nur um zu schauen, ob die Pause richtig funktioniert
di "hallo"

Leider bekomme ich durch Stata die Rückmeldung, dass die geschwungene Klammer am Ende von "pause on" problematisch ist. Wo ist der Haken?

Vielen Dank schon mal!
Limerick
 
Beiträge: 5
Registriert: Do 27. Feb 2014, 14:24
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stop/Break/Pause

Beitragvon daniel » Fr 28. Feb 2014, 12:49

Mal ganz ab von dem von Dir vermuteten Problem hast Du sehr wahrscheinlich noch ein anderes. Ich gehe davon aus, dass Var1-Var3 Variablennamen sind?

Die Bedingung

Code: Alles auswählen
if Var3=="Ausdruck"


prüft, ob die erste Beobachtung in Var3 "Ausdruck" entspricht. Sehr wahrscheinlich ist das nicht das, was Du möchtest. Beachte den enormen Unterschied zwischen einem -if- qualifier (z.b. -list if exp-), der sich im Sinne von Variablen auf (die Elemente von) Vecotren beziehen lässt, und dem -if- Befehel (-if exp ...), der zum programmieren Verwendet wird und sich nur auf scalare Ausdrücke beziehen lässt.
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


Zurück zu Stata Syntax

Wer ist online?

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

cron