Hello, in the following data generation; I want to change the last observation for variable 'censored' to '0' when ever it is '1'. That is the 100th observation should have censored=0 , even if it is supposed to e 1
data test;
seed=-1;
alpha1 = 2.50;
beta1 = 9.50;
do i = 1 to 100;
lambdaT = 0.025; *baseline hazard;
lambdaC= .03; *light=0.15; *heavy=0.03;
er=0+sqrt(0.0001)*rannor(1);
t = rand("WEIBULL", 0.75, lambdaT); * time of event;
c = rand("WEIBULL", 1.25, lambdaC) ;* time of censoring;
time = min(t, c); * which came first?;
censored = (c lt t);
obs=(t lt c); * creating observation variable from censored when
y= alpha1 + beta1*t + er;
output;
end;
run;
data test;
seed=-1;
alpha1 = 2.50;
beta1 = 9.50;
do i = 1 to 100;
lambdaT = 0.025; *baseline hazard;
lambdaC= .03; *light=0.15; *heavy=0.03;
er=0+sqrt(0.0001)*rannor(1);
t = rand("WEIBULL", 0.75, lambdaT); * time of event;
c = rand("WEIBULL", 1.25, lambdaC) ;* time of censoring;
time = min(t, c); * which came first?;
censored =ifn(i ne 100,(c lt t),0);
obs=(t lt c); * creating observation variable from censored when
y= alpha1 + beta1*t + er;
output;
end;
run;
data test;
seed=-1;
alpha1 = 2.50;
beta1 = 9.50;
do i = 1 to 100;
lambdaT = 0.025; *baseline hazard;
lambdaC= .03; *light=0.15; *heavy=0.03;
er=0+sqrt(0.0001)*rannor(1);
t = rand("WEIBULL", 0.75, lambdaT); * time of event;
c = rand("WEIBULL", 1.25, lambdaC) ;* time of censoring;
time = min(t, c); * which came first?;
censored =ifn(i ne 100,(c lt t),0);
obs=(t lt c); * creating observation variable from censored when
y= alpha1 + beta1*t + er;
output;
end;
run;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.