2016-11-09 3 views
0
  • Ich habe x Bauern.
  • Jeder Bauern hat eine variable Region, die anzeigt, wo er wohnt.
  • Für jeden Landwirt habe ich Daten von mehreren Jahren. (Jedoch unausgeglichen Platte!)

Wenn für einen Landwirt, variable Z == 0, dann will ich für alle Beobachtungen dieser Bauer in den Wert des letzten Jahres der Region für die die variable Region ändern Farmer.Panel-Daten: Geben Sie den Wert des letzten Jahres für alle Beobachtungen der anderen Jahre

Zum Beispiel:

farmID - year  - region - Z 
1  - 2004  - BE100  - 0 
1  - 2005  - BE100  - 0 
1  - 2006  - BE112  - 0 

werden sollte
farmID - year  - region - Z 
1  - 2004  - BE112  - 0 
1  - 2005  - BE112  - 0 
1  - 2006  - BE112  - 0 

Ich habe versucht:

by farmID, if Z==0: replace region[n] = region[_N] 

Aber das funktioniert nicht. Irgendwelche Vorschläge?

+0

Cross-Gepostet hier: http://www.statalist.org/forums/forum/general-stata-discussion/general/1363661-panel-data-give-value-of-the-last-year -zu-all-den-Beobachtungen-der-anderen-Jahre Die Leute über Cross-Posting zu informieren, ist in jedem Forum höflich, und nicht zu tun ist weit verbreitet. –

+0

Hallo Nick, in all den Fällen, die ich gepostet habe, gebe ich immer die Antwort unter beiden Posts mit einem Link zu dem Ort, wo die Antwort zuerst gegeben wurde. Aber ich verstehe Ihre Sorge, da nicht jeder das tut. Ich war mir nicht bewusst, dass die Leute es lieber im Voraus wissen. – user33125

+1

Es im Voraus zu wissen ist entscheidend. Selbst wenn Menschen alle möglichen Standorte überwachen, können sie nicht alle gleichzeitig überwachen. Das erste Mal, wenn ich eine Frage sehe, möchte ich wissen, ob sie woanders veröffentlicht wurde, also verschwende ich nicht meine Zeit damit, sie zu beantworten (es sei denn, ich kann bestehende Antworten verbessern). Selbst wenn die Leute nur auf eine Seite schauen und auch niemals Fragen beantworten, kostet das Vorankündigen nichts (Sie müssen nur eine URL angeben, Sekundenarbeit) und ist eine grundlegende Höflichkeit. –

Antwort

1
bysort farmID (year) : gen last_region = region[_N] 
#assuming Z does not vary within farmers 
replace region = last_region if Z == 0 
+1

Es ist wichtig für eine ausfallsichere Lösung, nach Jahr innerhalb jedes Panels zu sortieren. –

+0

fertig, danke für die Eingabe –

Verwandte Themen