2014-11-12 5 views
0

У меня есть следующая матрица данных, содержащая Poole Dw-номинировать баллы:Преобразовать значение переменного от двух переменных в отдельное переменное значение

con statenm party name  dwnom1 
80 USA  100 TRUMAN -.276 
80 ALABAMA 100 BOYKIN F -.026 

мне было интересно, если есть способ, в Stata, чтобы превратить значение dwnom1 США в определенную переменную, USA_dwnom1. Я бы хотел, чтобы каждая переменная со значением cong == 80 имела значение -.276 для каждого значения новой переменной USA_dwnom1.

Еще раз, мне было интересно, есть ли способ сделать это в цикле (я делаю это с 80-го до 112-го Конгресса).

+0

У вас есть хороший ответ, но вы, кажется, нацелились на пересечение (a) опытных пользователей Stata (б) людей, знакомых с деталями политики США (c) людей, которые знают данные, с которыми вы имеете дело. Объяснение сведений, известных в пунктах (b) и (c), увеличило бы вашу читательскую аудиторию до (a). Кроме того, это закончилось на SO, где многие люди ожидают попытки кода. –

ответ

1

Существует много способов сделать это. Вот один с помощью написанной пользователем команды xfill:

clear 

input con str7 statenm party str8 name dwnom1 
80 USA   100 "TRUMAN"  -.276 
80 ALABAMA  100 "BOYKIN F" -.026 
end 

net from http://www.sealedenvelope.com/ 
net install xfill 

gen USA_dwnom1 = dwnom1 if statenm =="USA" 
xfill USA_dwnom1, i(con) 

carryforward другой вариант. Некоторые другие решения первого принципа, которые используют replace и подписи, можно найти here.

Нет необходимости контактировать по конгрессам.