Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Assigning dates and days of week in a long dataset

    Hello,

    I have a long dataset with observations that represent all of the days that a person was enrolled in a study (day1, day2, day3, etc). For day 1 for each person, I have an actual calendar date ("date"). I would like fill in the rest of the date variable with calendar dates based on this first day (so day2=(date+1), day3= (date+2), etc).

    Below is a dataex example including person ID number (idn), day (1-100) and date.

    Thank you very much for your help,

    Sarah



    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input int(idn day) float date
    1   1 18919
    1   2     .
    1   3     .
    1   4     .
    1   5     .
    1   6     .
    1   7     .
    1   8     .
    1   9     .
    1  10     .
    1  11     .
    1  12     .
    1  13     .
    1  14     .
    1  15     .
    1  16     .
    1  17     .
    1  18     .
    1  19     .
    1  20     .
    1  21     .
    1  22     .
    1  23     .
    1  24     .
    1  25     .
    1  26     .
    1  27     .
    1  28     .
    1  29     .
    1  30     .
    1  31     .
    1  32     .
    1  33     .
    1  34     .
    1  35     .
    1  36     .
    1  37     .
    1  38     .
    1  39     .
    1  40     .
    1  41     .
    1  42     .
    1  43     .
    1  44     .
    1  45     .
    1  46     .
    1  47     .
    1  48     .
    1  49     .
    1  50     .
    1  51     .
    1  52     .
    1  53     .
    1  54     .
    1  55     .
    1  56     .
    1  57     .
    1  58     .
    1  59     .
    1  60     .
    1  61     .
    1  62     .
    1  63     .
    1  64     .
    1  65     .
    1  66     .
    1  67     .
    1  68     .
    1  69     .
    1  70     .
    1  71     .
    1  72     .
    1  73     .
    1  74     .
    1  75     .
    1  76     .
    1  77     .
    1  78     .
    1  79     .
    1  80     .
    1  81     .
    1  82     .
    1  83     .
    1  84     .
    1  85     .
    1  86     .
    1  87     .
    1  88     .
    1  89     .
    1  90     .
    1  91     .
    1  92     .
    1  93     .
    1  94     .
    1  95     .
    1  96     .
    1  97     .
    1  98     .
    1  99     .
    1 100     .
    end
    format %tdMonth_dd,__CCYY date

  • #2
    Try this:
    Code:
    bysort idn (day) : replace date=date[_n-1]+1 if _n>1

    Comment


    • #3
      Sarah Edgington gives excellent advice. Note that this is also covered in an FAQ https://www.stata.com/support/faqs/d...issing-values/

      Comment

      Working...
      X