2016-11-01 8 views
0

Meine Variablen werden wie folgt benannt:Resolving mehrdeutige Abkürzungen in forvalues ​​

F_1idoXyea_2_1988 
F_1idoXyea_2_1989 
F_1idoXyea_2_1990 

den Code Gegeben

forvalues i = 2(1)12 { 
    qui replace F_1idoXyea_`i' = F_1idoXyea_`i'*exp(_b[F_1idoXyea_`i']) 
} 

erscheint eine Fehlermeldung

F_1idoXyea_2 ambiguous abbreviation 

Wer weiß, wie diese zu lösen Problem?

Antwort

4

Die Verwendung einer forvalues Schleife ist nicht die Ursache für dieses Problem. Es ist schlicht und einfach: da Sie

F_1idoXyea_2_1988 
F_1idoXyea_2_1989 
F_1idoXyea_2_1990 

jede Bezugnahme-F_1idoXyea_2 mehrdeutig haben wird. Stata erlaubt Abkürzungen von Variablennamen (es sei denn, das ist deaktiviert), aber die einzige Möglichkeit, dies zu klären, besteht darin, Stata mitzuteilen, welche Variable Sie meinen.

Es ist auf allen Vieren mit dieser heimeligen Situation. Du hast drei Freunde Peter A, Peter B und Peter C. Und du fängst an, jemandem eine Geschichte über Peter zu erzählen, die sie alle kennt. Welchen Peter redest du? ist dann eine faire Frage.

+1

Ich muss den letzten Teil lieben. – JasonK

+0

Der Punkt ist, dass ich Variablen mit comand 'xi, pre (F_1) i.ido * i.year 'erstellen, dann wird der Variablenname von Stata erstellt. –

+0

Kein Zweifel, aber wie ändert sich die Frage? Wenn Sie diese alle überschleifen möchten, sollte ein Platzhalter wie 'F_1idoXyea_2 _ ????' oder 'F_1idoXyea_2 *' berücksichtigt werden. –