BookmarkSubscribeRSS Feed
deleted_user
Not applicable
HI everyone..

I have a dataset baseline with variables which I merge with other dosing dataset
by subject.
how can i define new baseline variables in new dataset?

basline dataset has variables subject , hdl,ldl,sampdate,trig.
dosing dataset has variables subject,dosedate.

first i did the sorting .
then mergeing.

data new;
merge baseline dosing;
by subject;

i want this new dataset to have variables like..
b_hdl,b_ldl,b_trig.
how do i do that.
the system says the variables are not referenced.if i use keep.
please help.

thanx in advance
april.
3 REPLIES 3
deleted_user
Not applicable
If you are using RENAME and KEEP in one data set, then KEEP should contain the original variable names rather than renamed variable names.

Try this out:-

data new (rename=(hdl=b_hdl ldl=b_ldl trig=b_trig));
merge baseline dosing;
by subject;
keep subject sampledate dosedat hdl ldl trig;
run; Message was edited by: Display name not found
deleted_user
Not applicable
thanx for the solution...

but the problem still stays..

i am writing the coding plz see where i am making a mistake.

the output i want from this dataset is that it should show locf so long as the measures occur withina five day window befor the pill is taken.

code:
*** Input Sample cholesterol data;
***subject=patient number,sampdate=lab sample date,
***hdl=hdl ldl=ldl trig=triglycerides.;

data cholesterol_base;
input subject $ sampdate date9. hdl ldl trig;
cards;
101 05sep2003 48 188 108
101 06sep2003 49 185 .
102 01oct2003 54 200 350
102 02oct2003 52 . 360
103 10nov2003 . 240 900
103 11nov2003 30 . 880
103 12nov2003 32 . .
103 13nov2003 35 289 930
;
run;


***input sample pill dosing date;
***subject=patient number,dosedate=drug dosing date;

data dosing;
input subject $ dosedate date9.;
cards;
101 07sep2003
102 07oct2003
103 13nov2003
;
run;



*** sorting cholesterol data for merging with dosing data;
proc sort data=cholesterol_base;
by subject sampdate;
run;

***sorting dosing data for merging with cholesterol data.;
proc sort data=dosing;
by subject;
run;

***DEFINE BASELINE HDL,LDL,TRIG VARIABLES.;
data baseline(rename=(hdl=b_hdl ldl=b_ldl trig=b_trig));
merge cholesterol_base dosing;
by subject;
keep subject hdl ldl trig;
run;

proc print data=baseline;
run;

*** setup array for baseline variables and lab values.;
array base{3} b_hdl b_ldl b_trig;
array chol{3} hdl ldl trig;

*** retain new baseline variables so they are present at last.subject below.;
retain b_hdl b_ldl b_trig;

*** initialize baseline variable to missing.;
if first.subject then
do i= 1 to 3;
base{i} = .;
end;

*** if labvalue is within 5 days of dosing,retain it as a valid baseline.;
if 1 <=(dosedate-sampdate)<=5 then
do i = 1 to 3 ;
if chol{i} ne . then
base{i} = chol{i};
end;
*** keep last record per patient holding the locf values.;
if last.subject;
label b_hdl="baseline hdl"
b_ldl="baseline ldl"
b_trig="baseline triglycerides";
run;
deleted_user
Not applicable
continued....

*** if labvalue is within 5 days of dosing,retain it as a valid baseline.;
if 1 <=(dosedate-sampdate)<=5 then
do i = 1 to 3 ;
if chol{i} ne . then
base{i} = chol{i};
end;
*** keep last record per patient holding the locf values.;
if last.subject;
label b_hdl="baseline hdl"
b_ldl="baseline ldl"
b_trig="baseline triglycerides";
run;

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

New Learning Events in April

 

Join us for two new fee-based courses: Administrative Healthcare Data and SAS via Live Web Monday-Thursday, April 24-27 from 1:00 to 4:30 PM ET each day. And Administrative Healthcare Data and SAS: Hands-On Programming Workshop via Live Web on Friday, April 28 from 9:00 AM to 5:00 PM ET.

LEARN MORE

Discussion stats
  • 3 replies
  • 1016 views
  • 0 likes
  • 1 in conversation