Создать симметричную базу данных - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть несколько переменных в Stata, включая пользователей и транзакции:

user    transaction service
1000435 453         9789
1000435 457         7897
1000435 458         4567
1000435 459         5675
2000656 461         8798        
3000232 462         1233
3000232 469         0987

Как я могу рассчитать отсутствующие транзакции для создания симметричной базы данных?

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете сделать это с помощью команд reshape или expand, но вот более быстрое решение, которое основывается на указании ваших данных в качестве временного ряда / панели:

clear

input user transaction service 
1000435 453 9789
1000435 457 7897
1000435 458 4567
1000435 459 5675
2000656 461 8798        
3000232 462 1233
3000232 469 0987
end

tsset user transaction // or xtset

tsfill

Это заполнит набор данныхпропущенные транзакции для диапазона каждого пользователя:

list, abbreviate(12) sepby(user)

     +---------------------------------+
     |    user   transaction   service |
     |---------------------------------|
  1. | 1000435           453      9789 |
  2. | 1000435           454         . |
  3. | 1000435           455         . |
  4. | 1000435           456         . |
  5. | 1000435           457      7897 |
  6. | 1000435           458      4567 |
  7. | 1000435           459      5675 |
     |---------------------------------|
  8. | 2000656           461      8798 |
     |---------------------------------|
  9. | 3000232           462      1233 |
 10. | 3000232           463         . |
 11. | 3000232           464         . |
 12. | 3000232           465         . |
 13. | 3000232           466         . |
 14. | 3000232           467         . |
 15. | 3000232           468         . |
 16. | 3000232           469       987 |
     +---------------------------------+

Если вы хотите заполнить полный диапазон пропущенных значений (т. е. для всех пользователей), вам также потребуется fullопция:

tsfill, full

list, abbreviate(12) sepby(user)

     +---------------------------------+
     |    user   transaction   service |
     |---------------------------------|
  1. | 1000435           453      9789 |
  2. | 1000435           454         . |
  3. | 1000435           455         . |
  4. | 1000435           456         . |
  5. | 1000435           457      7897 |
  6. | 1000435           458      4567 |
  7. | 1000435           459      5675 |
  8. | 1000435           460         . |
  9. | 1000435           461         . |
 10. | 1000435           462         . |
 11. | 1000435           463         . |
 12. | 1000435           464         . |
 13. | 1000435           465         . |
 14. | 1000435           466         . |
 15. | 1000435           467         . |
 16. | 1000435           468         . |
 17. | 1000435           469         . |
     |---------------------------------|
 18. | 2000656           453         . |
 19. | 2000656           454         . |
 20. | 2000656           455         . |
 21. | 2000656           456         . |
 22. | 2000656           457         . |
 23. | 2000656           458         . |
 24. | 2000656           459         . |
 25. | 2000656           460         . |
 26. | 2000656           461      8798 |
 27. | 2000656           462         . |
 28. | 2000656           463         . |
 29. | 2000656           464         . |
 30. | 2000656           465         . |
 31. | 2000656           466         . |
 32. | 2000656           467         . |
 33. | 2000656           468         . |
 34. | 2000656           469         . |
     |---------------------------------|
 35. | 3000232           453         . |
 36. | 3000232           454         . |
 37. | 3000232           455         . |
 38. | 3000232           456         . |
 39. | 3000232           457         . |
 40. | 3000232           458         . |
 41. | 3000232           459         . |
 42. | 3000232           460         . |
 43. | 3000232           461         . |
 44. | 3000232           462      1233 |
 45. | 3000232           463         . |
 46. | 3000232           464         . |
 47. | 3000232           465         . |
 48. | 3000232           466         . |
 49. | 3000232           467         . |
 50. | 3000232           468         . |
 51. | 3000232           469       987 |
     +---------------------------------+

Введите help tsset/xtset и help tsfill из командной строки Stata для получения дополнительной информации.

...