Announcement

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

  • generating a new var by subtracting values of columns by their subsequent value

    For the below dataset, I would like to generate a new var by subtracting each value of, for example, knowledge1 when Time_net=6 and Time_net=18. I would like to do this for knowledge1, attitude1, efficacy1, and Use1. My actual data includes a sequence of vars such as knowledge2, attitude2, efficacy2, Use2, knowledge3, attitude3, efficacy3, Use3.


    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input str5 UID double(Time_net knowledge1 attitude1 efficacy1 use1)
    "C11"  6 5.5 5.25                 6    .
    "C11" 18   6 6.25              6.25 5.75
    "C20"  6 5.5 6.25                 6    .
    "C48"  6   4    5 4.333333333333333    .
    "C48" 18 5.5    7              6.75 5.75
    end

  • #2
    Code:
    foreach v of var  knowledge1 attitude1 efficacy1 use1 { 
         bysort UID (Time_net) : gen `v'_change = `v'[2] - `v'[1] if Time_net[1] == 6 & Time_net[2] == 18 
    }
    Reverse the arguments if you want subtraction the other way round.

    Comment

    Working...
    X