Stata: Рассчитать сумму любого x в y? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть две переменные:

  1. Одна называется packageid (уникальный идентификационный номер для кредита компании)
  2. Другая называется ConventType, которая имеет значения от 1 до 21 каждая представляющий тип завета (займа).

Я хочу создать новую переменную (cov_sum), которая будет суммой любого типа завета в packageid.

* Example generated by -dataex-. To install: ssc install dataex
clear
input double packageid long CovenantType
 4106 13
 4106 18
 4812 13
 4952  2
 5223  9
 5287 18
 7011  4
 7011 13
 7011 18
 7849 17
10261 17
11057  4
11178  4
11178 13
11178 18
11452 17
11714  4
11714 13
11954  2
11954 13
11954 18
12807 13
12807 18
end

Так, например, packageid 4106 будет иметь cov_sum = 2, потому что он имеет два значения CovenantType, 13 и 18.

Я создал 21 временную переменную, равную 1 или 0 для каждый тип соглашения, но я не уверен, как сделать этот последний шаг для суммирования их для каждого packageid.

Я знаю, что это создаст повторяющиеся значения, как показано ниже, но это нормально.

input double packageid long CovenantType long? cov_sum
 4106 13 2
 4106 18 2

Как мне создать переменную, которая будет суммой любого типа ковенанта в packageid?

1 Ответ

2 голосов
/ 05 марта 2020

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

bysort packageid: generate n = _n
bysort packageid: egen cov_sum = max(n)

list, abbreviate(15)

     +----------------------------------------+
     | packageid   CovenantType   n   cov_sum |
     |----------------------------------------|
  1. |      4106             13   1         2 |
  2. |      4106             18   2         2 |
  3. |      4812             13   1         1 |
  4. |      4952              2   1         1 |
  5. |      5223              9   1         1 |
     |----------------------------------------|
  6. |      5287             18   1         1 |
  7. |      7011              4   1         3 |
  8. |      7011             13   2         3 |
  9. |      7011             18   3         3 |
 10. |      7849             17   1         1 |
     |----------------------------------------|
 11. |     10261             17   1         1 |
 12. |     11057              4   1         1 |
 13. |     11178              4   1         3 |
 14. |     11178             13   2         3 |
 15. |     11178             18   3         3 |
     |----------------------------------------|
 16. |     11452             17   1         1 |
 17. |     11714              4   1         2 |
 18. |     11714             13   2         2 |
 19. |     11954              2   1         3 |
 20. |     11954             13   2         3 |
     |----------------------------------------|
 21. |     11954             18   3         3 |
 22. |     12807             13   1         2 |
 23. |     12807             18   2         2 |
     +----------------------------------------+
...