2017-02-28 3 views
0

Gibt es einen Weg in Stata, um einen Teil des Codes auszuführen, wenn und nur wenn ein vorheriger Bit Code tatsächlich Änderungen vorgenommen hat?Indikator für vorgenommene Änderungen

Zum Beispiel, verkette ich zwei Variablen nur, wenn einer von ihnen einen regexm() Test erfüllt. Ich verstehe, dass, wenn ich dieses Qualifikationsmerkmal als if Befehl ausführen, es nur die erste Beobachtung betrachtet. Gibt es eine Möglichkeit, einen if Befehl ausgeführt werden soll, sagen

if regexm(var`n', ".*\)$") { 
    // code 
} 

und hat die if Anweisung return true, wenn die Bedingung für jede Beobachtung wahr ist, nicht nur die erste?

+0

Bearbeitete STATA zu Stata. Ich habe diese Änderung in Ihrem vorherigen Thread vorgenommen und vertraut, dass Sie bemerken würden. Die Schreibweise STATA wurde von der Firma für keine mehr als 30 Jahre benutzt. Ich weiß nicht, woher das Meme STATA jetzt kommt, es sei denn, es handelt sich um eine falsche Analogie zu SAS und SPSS. Stata war nie ein Akronym, immer ein erfundener Name. –

Antwort

0

Für ein Spiel in jedem Beobachtungs Code auszulösen, müssen Sie zuerst Spiele zählen:

count if regexm(var`n', ".*\)$") 

if r(N) > 0 { 
    // code 
} 

if r(N) würde hier genügen, als Nicht-Null-Argumente als wahr behandelt werden und r(N) von count kann nie negativ sein .

+0

Ah, schön, genau das habe ich gesucht. Vielen Dank!!! – Christian

+0

Ich denke, Sie suchen nach einer Klammer am Ende einer Zeichenfolge. Eine andere Bedingung dafür ist 'substr (was auch immer, -1, 1) ==") "'. –

Verwandte Themen