Посещения в двухнедельном окне - PullRequest
2 голосов
/ 21 сентября 2019

Из следующих данных мне нужно рассчитать общее количество посещений пациента в течение двухнедельного окна:

clear
input date visits
20836 1
20837 4
20838 4
20839 3
20840 1
20841 3
20842 2
20843 4
20844 1
20845 2
20846 3
20847 4
20848 3
20849 1
20850 4
20851 2
20852 2
20853 2
20854 2
20855 3
20856 3
20857 3
20858 4
20859 4
20860 4
20861 1
20862 4
20863 2
20864 4
20865 2
20866 1
20867 3
20868 2
20869 4
20870 2
20871 4
20872 1
20873 4
20874 4
20875 3
20876 1
20877 2
20878 2
20879 2
20880 4
20881 4
20882 2
20883 1
20884 2
20885 4
20886 3
20887 1
20888 4
20889 2
20890 4
20891 3
20892 2
20893 3
20894 4
20895 2
end
format %td date 

Я думаю, что мне нужно использовать функции sum() или total(), но как я могу это сделать?сделать это в течение двух недель?

1 Ответ

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

Просто разделите разницу в дневных датах на периодическое окно в днях (14) и добавьте день:

generate window = floor((date - date[1]) / 14) + 1
bysort window: egen wanted = total(visits)

list, sepby(window)

     +--------------------------------------+
     |      date   visits   window   wanted |
     |--------------------------------------|
  1. | 17jan2017        1        1       36 |
  2. | 18jan2017        4        1       36 |
  3. | 19jan2017        4        1       36 |
  4. | 20jan2017        3        1       36 |
  5. | 21jan2017        1        1       36 |
  6. | 22jan2017        3        1       36 |
  7. | 23jan2017        2        1       36 |
  8. | 24jan2017        4        1       36 |
  9. | 25jan2017        1        1       36 |
 10. | 26jan2017        2        1       36 |
 11. | 27jan2017        3        1       36 |
 12. | 28jan2017        4        1       36 |
 13. | 29jan2017        3        1       36 |
 14. | 30jan2017        1        1       36 |
     |--------------------------------------|
 15. | 31jan2017        4        2       40 |
 16. | 01feb2017        2        2       40 |
 17. | 02feb2017        2        2       40 |
 18. | 03feb2017        2        2       40 |
 19. | 04feb2017        2        2       40 |
 20. | 05feb2017        3        2       40 |
 21. | 06feb2017        3        2       40 |
 22. | 07feb2017        3        2       40 |
 23. | 08feb2017        4        2       40 |
 24. | 09feb2017        4        2       40 |
 25. | 10feb2017        4        2       40 |
 26. | 11feb2017        1        2       40 |
 27. | 12feb2017        4        2       40 |
 28. | 13feb2017        2        2       40 |
     |--------------------------------------|
 29. | 14feb2017        4        3       37 |
 30. | 15feb2017        2        3       37 |
 31. | 16feb2017        1        3       37 |
 32. | 17feb2017        3        3       37 |
 33. | 18feb2017        2        3       37 |
 34. | 19feb2017        4        3       37 |
 35. | 20feb2017        2        3       37 |
 36. | 21feb2017        4        3       37 |
 37. | 22feb2017        1        3       37 |
 38. | 23feb2017        4        3       37 |
 39. | 24feb2017        4        3       37 |
 40. | 25feb2017        3        3       37 |
 41. | 26feb2017        1        3       37 |
 42. | 27feb2017        2        3       37 |
     |--------------------------------------|
 43. | 28feb2017        2        4       38 |
 44. | 01mar2017        2        4       38 |
 45. | 02mar2017        4        4       38 |
 46. | 03mar2017        4        4       38 |
 47. | 04mar2017        2        4       38 |
 48. | 05mar2017        1        4       38 |
 49. | 06mar2017        2        4       38 |
 50. | 07mar2017        4        4       38 |
 51. | 08mar2017        3        4       38 |
 52. | 09mar2017        1        4       38 |
 53. | 10mar2017        4        4       38 |
 54. | 11mar2017        2        4       38 |
 55. | 12mar2017        4        4       38 |
 56. | 13mar2017        3        4       38 |
     |--------------------------------------|
 57. | 14mar2017        2        5       11 |
 58. | 15mar2017        3        5       11 |
 59. | 16mar2017        4        5       11 |
 60. | 17mar2017        2        5       11 |
     +--------------------------------------+
...