2014-11-13 4 views
0

У меня есть следующие матрицы данных, содержащей идеологию оценки в настраиваемой наборе:Stata Удаление нескольких наблюдений

year state cdnum party name  dwnom1 
1946  23  10 200 WOODRUFF  0.43 
1946  23  11 200 BRADLEY F. 0.534 
1946  23  11 200 POTTER C. 0.278 
1946  23  12 200 BENNETT J. 0.189 

Мой единицей анализа является данный избирательный округ по выборам в палату представителей конгресса США, в данном году. Как видно, состояние № 23, cdnum # 11, имеет два наблюдения в 1946 году.

Что бы я хотел сделать, это удалить предыдущее наблюдение, в данном случае наблюдение, соответствующее названию: BRADLEY.F. Это происходит, когда в округе Конгресса есть два члена на данном Конгрессе. Попытка коды, который я попытался это следующим образом:

drop if year==[_n+1] & statenum==[_n+1] & cdnum==[_n+1] 

Моей попытки это условный аргумент, уронить наблюдение, если: год является таким же, как на следующее наблюдение, statenum такого же, как на следующее наблюдение , а cdnum совпадает с следующим наблюдением. Таким образом, я могу обеспечить, чтобы в каждом районе было только одно соответствующее для данного года. При попытке запуска кода я получаю:

drop if year==[_n-1] & statenum==[_n-1] & cdnum==[_n-1] 
(0 observations deleted) 
+0

Ваши последние два сообщения были перенесены в Stack Overflow, и это последует примеру. Обратите внимание на шаблон и консультируйтесь с советами по вопросам, касающимся программного обеспечения, в Справочном центре. –

+0

Вы не имеете в виду то, что говорите. 'if year == [_ n-1]' должен быть 'if year == year [_n-1]' и т. д. –

+0

См. http://stats.stackexchange.com/help/behavior on ** not ** включая подписи. Предполагается хорошая воля; нам не нужно читать лишние приветствия или благодарности. –

ответ

0

Краткой альтернативы: Вы должны проверить команду duplicates.

Подробное описание ошибки:

Вы не означает, что вы говорите Stata.

Ваши условия, такие как

if year == [_n-1] 

должен быть

if year == year[_n-1] 

и так далее.

[_n-1] 

само по себе рассматривается как если бы вы набрали

_n-1 

который является число наблюдений, минус 1.

Вот вялый пример. Читайте в автоматических данных.

. sysuse auto 
(1978 Automobile Data) 

. list foreign if foreign == [_n-1], nola 

    +---------+ 
    | foreign | 
    |---------| 
1. |  0 | 
    +---------+ 

переменной foreign равно _n - 1 ровно один раз, в наблюдении 1, когда foreign равно 0 и _n равен 1.

Короче говоря, это [_n-1]не следует интерпретировать как предыдущее значение (из переменная, о которой я только что упомянул).

help subscripting дает самую большую помощь.