Сокращенный набор данных для хранения только уникальных значений для переменной - PullRequest
1 голос
/ 30 сентября 2019

Предполагая, что у меня есть следующий набор данных в качестве примера игрушки:

clear

input str32 Country Population_1 Population_2 
"United States of America" 3999 .
"United States of America" .  3447
"Afghanistan" 544 .
"Afghanistan" . 727
"Belgium" 7546 .
"Belgium" . 992
"China" 10000 .
"China" .  12000
end

Я хочу сжать набор данных, чтобы было только одно уникальное значение для страны.

Мой последний набор данных долженвыглядит следующим образом:

Country                    Population_1   Population_2
United States of America       3999           3447
Afghanistan                     544            727
Belgium                        7546            992
China                         10000          12000

Я пытался использовать команду collapse, но не получил ожидаемого результата. Команда duplicates drop тоже не работает, так как я не получает наблюдения от Population_2.

Ответы [ 3 ]

1 голос
/ 30 сентября 2019

Это работает для меня:

collapse Pop*, by(Country) 

list, abbreviate(12)

     +--------------------------------------------------------+
     |                  Country   Population_1   Population_2 |
     |--------------------------------------------------------|
  1. |              Afghanistan            544            727 |
  2. |                  Belgium           7546            992 |
  3. |                    China          10000          12000 |
  4. | United States of America           3999           3447 |
     +--------------------------------------------------------+
1 голос
/ 30 сентября 2019

У меня работает следующее:

generate Population_ = .

by Country, sort: replace Population_ = Population_2 if Population_1 == .
by Country, sort: replace Population_ = Population_1 if Population_2 == .

by Country: generate time = _n

drop Population_1 Population_2

reshape wide Population_, i(Country) j(time)
0 голосов
/ 30 сентября 2019

Команда , предоставленная сообществом gcollapse, также может сохранять требуемые переменные в наборе данных:

gcollapse (sum) Pop*, merge replace by(Country)
duplicates drop Country, force
...