Преобразовать значение переменной из двух переменных в отдельное значение переменной

У меня есть следующая матрица данных, содержащая баллы Poole dw-nominate:

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-го конгресса).

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 и подписку можно найти здесь.

Нет необходимости зацикливаться на конгрессах.

Другие вопросы по тегам