BitteB
BitteB

Reputation: 59

Count across columns starting from unique column for each row in SAS

I have a dataset containing a number of persons who have been involved in an accident. Each person have been in an accident at a different time and I have coded a variable start_week which indicates what week number after a certain date (january 1st 2011), the accident occurred.

For each individual I also have a a variable for each week after january 1st 2011, that shows whether or not this individual has been hospitalized. I now need to count how many weeks a person has been hospitalized XX weeks after the accident.

The desired results should be a column like sum_week that sums number of weeks after the accident depending on the value shown in the variable start_week.

Id start_week week_1 week_2 week_3 week_4 sum_week
1 2 1 0 1 1 2
2 3 1 0 0 1 1

I think this can be done using an array, but I have no idea how. If it isn't possible to count across columns based on the variable start_week, I am planning on transposing my data. I would however prefer if this could be done without having to transpose my data.

Any help is much appreciated!

Upvotes: 1

Views: 163

Answers (1)

Tom
Tom

Reputation: 51621

Just use the START_WEEK as the initial value in the DO loop you use to check the array.

data want;
  set have ;
  array week_[4];
  sum_week=0;
  do index=start_week to dim(week_);
    sum_week+week_[index];
  end;
  drop index;
run;

Upvotes: 1

Related Questions