Announcement

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

  • Create a grouping variable based on previous 2 years

    I have event date data where there are multiple evendates. I'd like to create a grouping variable based on the past two years starting in 2020. Given their are multiple events on the same date I can't tsset the data without first collapsing it.

    ro_n = unique identifier

    eventdate year ro_n weight
    18jun2017 2017 2 6
    18jun2017 2017 2 5
    29jan2020 2020 2 3
    29jan2020 2020 2 1
    29jan2020 2020 2 14
    29jan2020 2020 2 6
    29jan2020 2020 2 2
    29jan2020 2020 2 6
    29jan2020 2020 2 9
    29jan2020 2020 2 15
    29jan2020 2020 2 4
    26nov2022 2022 3 15
    26nov2022 2022 3 10
    26nov2022 2022 3 6
    26nov2022 2022 3 14
    26nov2022 2022 3 7
    29oct2023 2023 4 2
    29oct2023 2023 4 13


  • #2
    Here is what I did but I'm sure someone has a more efficient method.

    * Calculate the year difference from 2020
    gen year_2023=year-2021
    gen year_2022=year-2020
    gen year_2021=year-2019
    gen year_2020=year-2018

    * Grouping variable based on the past two years starting from 2023
    foreach var of varlist year_2023 year_2022 year_2021 year_2020 {
    gen g`var'=0
    replace g`var'=1 if `var'==0
    replace g`var'=1 if `var'==1
    }
    Last edited by John MacDonald; 15 Mar 2024, 16:49.

    Comment


    • #3
      See also https://www.statalist.org/forums/for...uping-variable

      I don't follow how these new variables can be useful, but the three commands inside the loop can be condensed to one:

      Code:
      gen g`var' = cond(inlist(`var', 0, 1), 1, 0)

      Comment

      Working...
      X