Announcement

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

  • Creating lagged variable

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str9 date str31 brand_name int demand
    "02jun2021" "Baskin Robbins"  3
    "03jun2021" "Baskin Robbins"  3
    "04jun2021" "Baskin Robbins"  3
    "05jun2021" "Baskin Robbins"  1
    "06jun2021" "Baskin Robbins"  3
    "07jun2021" "Baskin Robbins"  3
    "10jun2021" "Baskin Robbins"  1
    "11jun2021" "Baskin Robbins"  7
    "12jun2021" "Baskin Robbins"  3
    "13jun2021" "Baskin Robbins"  8
    "14jun2021" "Baskin Robbins"  1
    "15jun2021" "Baskin Robbins"  4
    "16jun2021" "Baskin Robbins"  1
    "17jun2021" "Baskin Robbins"  4
    "18jun2021" "Baskin Robbins"  2
    "19jun2021" "Baskin Robbins"  5
    "20jun2021" "Baskin Robbins"  4
    "21jun2021" "Baskin Robbins"  2
    "22jun2021" "Baskin Robbins"  2
    "23jun2021" "Baskin Robbins"  3
    "24jun2021" "Baskin Robbins"  5
    "25jun2021" "Baskin Robbins"  3
    "26jun2021" "Baskin Robbins"  6
    "27jun2021" "Baskin Robbins"  2
    "28jun2021" "Baskin Robbins"  3
    "29jun2021" "Baskin Robbins"  1
    "30jun2021" "Baskin Robbins"  3
    "01jul2021" "Baskin Robbins"  3
    "02jul2021" "Baskin Robbins"  2
    "03jul2021" "Baskin Robbins"  3
    "04jul2021" "Baskin Robbins"  2
    "05jul2021" "Baskin Robbins"  1
    "06jul2021" "Baskin Robbins"  2
    "07jul2021" "Baskin Robbins"  5
    "08jul2021" "Baskin Robbins"  3
    "09jul2021" "Baskin Robbins"  2
    "10jul2021" "Baskin Robbins"  6
    "11jul2021" "Baskin Robbins"  3
    "12jul2021" "Baskin Robbins"  4
    "13jul2021" "Baskin Robbins"  1
    "16jul2021" "Baskin Robbins"  3
    "17jul2021" "Baskin Robbins"  1
    "18jul2021" "Baskin Robbins"  1
    "19jul2021" "Baskin Robbins"  3
    "22jul2021" "Baskin Robbins"  2
    "23jul2021" "Baskin Robbins"  2
    "24jul2021" "Baskin Robbins"  4
    "25jul2021" "Baskin Robbins" 11
    "26jul2021" "Baskin Robbins"  6
    "27jul2021" "Baskin Robbins"  4
    "28jul2021" "Baskin Robbins"  4
    "29jul2021" "Baskin Robbins"  4
    "30jul2021" "Baskin Robbins"  4
    "31jul2021" "Baskin Robbins"  4
    "01aug2021" "Baskin Robbins"  5
    "03aug2021" "Baskin Robbins"  2
    "07aug2021" "Baskin Robbins"  4
    "08aug2021" "Baskin Robbins"  5
    "09aug2021" "Baskin Robbins"  1
    "11aug2021" "Baskin Robbins"  2
    "12aug2021" "Baskin Robbins"  2
    "13aug2021" "Baskin Robbins"  1
    "14aug2021" "Baskin Robbins"  2
    "15aug2021" "Baskin Robbins"  4
    "16aug2021" "Baskin Robbins"  3
    "17aug2021" "Baskin Robbins"  2
    "18aug2021" "Baskin Robbins"  3
    "19aug2021" "Baskin Robbins"  4
    "20aug2021" "Baskin Robbins"  2
    "21aug2021" "Baskin Robbins"  3
    "22aug2021" "Baskin Robbins"  3
    "23aug2021" "Baskin Robbins"  2
    "24aug2021" "Baskin Robbins"  1
    "25aug2021" "Baskin Robbins"  1
    "26aug2021" "Baskin Robbins"  3
    "27aug2021" "Baskin Robbins"  5
    "28aug2021" "Baskin Robbins"  2
    "29aug2021" "Baskin Robbins"  2
    "30aug2021" "Baskin Robbins"  2
    "31aug2021" "Baskin Robbins"  2
    "01sep2021" "Baskin Robbins"  2
    "02sep2021" "Baskin Robbins"  4
    "03sep2021" "Baskin Robbins"  3
    "04sep2021" "Baskin Robbins"  4
    "05sep2021" "Baskin Robbins"  7
    "06sep2021" "Baskin Robbins"  1
    "07sep2021" "Baskin Robbins"  2
    "08sep2021" "Baskin Robbins"  1
    "09sep2021" "Baskin Robbins"  4
    "10sep2021" "Baskin Robbins"  1
    "11sep2021" "Baskin Robbins"  3
    "12sep2021" "Baskin Robbins"  5
    "13sep2021" "Baskin Robbins"  1
    "14sep2021" "Baskin Robbins"  1
    "15sep2021" "Baskin Robbins"  5
    "17sep2021" "Baskin Robbins"  6
    "18sep2021" "Baskin Robbins"  6
    "19sep2021" "Baskin Robbins" 12
    "20sep2021" "Baskin Robbins"  3
    "21sep2021" "Baskin Robbins" 11
    end

    I want to create week lags for the variable demand. For example, 27 Aug 2021 is a Friday; I want to create a variable with last week's Friday demand (Demand on 20 Aug 2021). If that information isn't available, demand on 13 Aug 2021 (Friday) should be captured. If demand on 13 Aug 2021 isn't available, it should return zero. The variable should not capture the demand on other days except Friday. The variable brand_name has multiple brands, not only Baskin Robbins. Hence these lagged values should be created for each of the brands. How should I proceed with the code for creating the new lagged demand variable?

  • #2
    Code:
    ren date date_str
    gen date = date(date_str, "DMY")
    gen dayofweek = dow(date)
    gen friday = dayofweek==5
    sort brand date
    gen lag_demand = .
    forval x = 1/14{
        replace lag_demand = demand[_n-`x'] if friday==1 & friday[_n-`x'] == 1 & (date-date[_n-`x']==7) & brand==brand[_n-`x']
        replace lag_demand = demand[_n-`x'] if lag_demand==. & friday==1 & friday[_n-`x'] == 1 & (date-date[_n-`x']==14) & brand==brand[_n-`x']
    }
    Last edited by Emil Alnor; 05 Apr 2023, 09:36.

    Comment

    Working...
    X