创建对称数据库

时间:2018-09-26 08:29:00

标签: stata

我在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 :(得分:2)

您可以使用reshapeexpand命令执行此操作,但这是一种更快的解决方案,它依赖于将数据指定为时间序列/面板:

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 |
     +---------------------------------+

如果您要填充所有范围的缺失值(例如,对于 all 用户),还需要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 |
     +---------------------------------+

在Stata的命令提示符下键入help tsset/xtsethelp tsfill,以获取更多信息。