data mydata;
input patient_id $ medication $12. claim;
datalines;
ID1 medication .
ID1 medication .
ID1 medicationX 1
ID1 medication .
ID2 medication .
ID2 medication .
ID2 medication .
ID3 medicationX 1
ID3 medication .
ID3 medicationX 1
ID3 medication .
;
run;
proc sql;
create table mydata_filled as
select *, max(claim) as claim_filled
from mydata
group by patient_id;
quit;
SQL is one way.
@Tamino wrote:
Hi there,
I have a dataset with medication claims for different patients. If a certain medication is claimed, this shows up in a specific varbiable (yes=1, no=.). Now if within a single patient_id, the wanted variable is "1" once or more, I would like to be it "1" in every single row of that patient_id.
My data looks like this:
data mydata;
input patient_id $ medication $ claim;
datalines;
ID1 medication .
ID1 medication .
ID1 medicationX 1
ID1 medication .
ID2 medication .
ID2 medication .
ID2 medication .
ID3 medicationX 1
ID3 medication .
ID3 medicationX 1
ID3 medication .
;
run;
I would like to obtain a dataset with filled "claim" variable for each patient_id, if "1" is present once or more within a patient_id, that looks like this:
data mydata;
input patient_id $ medication $ claim;
datalines;
ID1 medication 1
ID1 medication 1
ID1 medicationX 1
ID1 medication 1
ID2 medication .
ID2 medication .
ID2 medication .
ID3 medicationX 1
ID3 medication 1
ID3 medicationX 1
ID3 medication 1
;
run;
I hope it is understandable. Thank you for your help.
... View more