2016-11-09 11 views
0
  • У меня есть х фермеров.
  • У каждого фермера есть переменная область, указывающая, где он живет.
  • Для каждого фермера у меня есть данные за несколько лет. (Однако, несбалансированная панели!)

Если для одного фермера, переменная Z == 0, то я хочу, чтобы изменить переменную область для всех наблюдений этого фермера в стоимость последнего года для региона, что фермер.данные панели: укажите значение прошлого года для всех наблюдений других лет

Например:

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

должны стать

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

Я пробовал:

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

Но это не работает. Какие-либо предложения?

+0

Поперечное размещена здесь: http://www.statalist.org/forums/forum/general-stata-discussion/general/1363661-panel-data-give-value-of-the-last-year -все-на-наблюдения-в-других-лет. Говорить людям о перекрестке сообщений вежливо в любом форуме, и не делать это широко не рекомендуется. –

+0

Привет, Ник, во всех случаях, когда я перекрестился, я всегда даю ответ на оба сообщения со ссылкой на место, где сначала был дан ответ. Но я понимаю ваше беспокойство, учитывая, что не все это делают. Я не знал о том, что люди предпочитают это знать заранее. – user33125

+1

Зная это заранее, имеет решающее значение. Даже если люди контролируют все возможные сайты, они не могут контролировать их все одновременно. В первый раз, когда я вижу вопрос, я хочу знать, был ли он опубликован в другом месте, поэтому я не трачу время на его ответ (если только я не смогу улучшить существующие ответы). Даже если люди смотрят только на один сайт, а также никогда не отвечают на вопросы, рассказывая всем заранее, ничего не стоит дорого (вам нужно дать один URL, секундную работу) и является основной вежливостью. –

ответ

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

Для отказоустойчивого решения важно сортировать по году в каждой панели. –

+0

сделано, спасибо за вход –