Свернуть на сумму одной переменной, но среднее значение другой - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть следующий набор данных, который я sh сверну, чтобы создать набор данных уровня фирмы1 - фирмы2 - года:

clear

input str32 Firm_1 str32 Firm_2    year number_employees str32 blah1  str32 blah2  returns 
           "Rathon"    "Hass"      2010      4000               hey    hello        40
           "Rathon"    "Hass"      2010      6000               hey    hello        20
           "Rathon"    "Hass"      2012     12000               money    fame       10
           "Rathon"    "Broq"      2012     12000               dime     bunk       50
           "Birlar"    "Goth"      2008      1000               shop     ladder     30
           "Birlar"    "Goth"      2008      7000               shop     ladder     70
end

Я хочу, чтобы окончательный набор данных был сокращен, чтобы каждое наблюдение представляло одинаковые firm_1 и firm_2 для одинаковых year. Следовательно, это будет выглядеть следующим образом:

           Firm_1       Firm_2    year number_employees  blah1    blah2    returns
           "Rathon"    "Hass"      2010     10000          hey     hello     30 
           "Rathon"    "Hass"      2012     12000         money    fame      10
           "Rathon"    "Broq"      2012     12000         dime     bunk      50
           "Birlar"    "Goth"      2008      8000         shop     ladder    50

Однако, когда я использую collapse следующим образом:

collapse (sum) number_employees, by ( Firm_1 Firm_2 year)

, команда удаляет переменные blah_1 и blah_2. Есть ли способ сохранить их? Кроме того, returns должно быть усреднено при свертывании наблюдений, а не суммироваться, как мы делаем для number_employees

1 Ответ

1 голос
/ 12 февраля 2020

Это работает с вашим примером:

collapse (sum) number_employees (mean) returns , by(Firm_1 Firm_2 blah* year) 

list 

     +--------------------------------------------------------------+
     | Firm_1   Firm_2   year   blah1    blah2   number~s   returns |
     |--------------------------------------------------------------|
  1. | Birlar     Goth   2008    shop   ladder       8000        50 |
  2. | Rathon     Broq   2012    dime     bunk      12000        50 |
  3. | Rathon     Hass   2010     hey    hello      10000        30 |
  4. | Rathon     Hass   2012   money     fame      12000        10 |
     +--------------------------------------------------------------+

Пока существует однозначное соответствие по вашему желанию, переменные константы в каждой группе могут быть добавлены к опции by(). Более очевидно, документированный синтаксис позволяет рассчитывать разную статистику для одинаковых или разных переменных.

...