DATA Step, Macro, Functions and more

RETAIN VISITNUM WHEN MISSING

Accepted Solution Solved
Reply
Contributor
Posts: 56
Accepted Solution

RETAIN VISITNUM WHEN MISSING

[ Edited ]

RETAIN MISSING VALUE OF VISITNUM WITH PREVIOUS VALUE WITH ADDITION OF 0.01

 

EX;

VISTNUM

1

.

.

2

.

3

THEN I WANT

VISTNUM

1

1.01

1.02

2

2.01

3

 

 

 

WhatsApp Image 2018-03-28 at 7.01.21 PM.jpeg

 


Accepted Solutions
Solution
‎04-03-2018 04:30 AM
Super User
Super User
Posts: 8,279

Re: RETAIN VISITNUM WHEN MISSING

Posted in reply to rvsidhu035

Make a new variable. You can always rename it if you want.

data want ;
 set have ;
 if missing(visitnum) then newvar+0.01 ;
 else newvar=visitnum;
run;
Obs    visitnum    newvar

 1         1        1.00
 2         .        1.01
 3         .        1.02
 4         2        2.00
 5         .        2.01
 6         3        3.00

View solution in original post


All Replies
Solution
‎04-03-2018 04:30 AM
Super User
Super User
Posts: 8,279

Re: RETAIN VISITNUM WHEN MISSING

Posted in reply to rvsidhu035

Make a new variable. You can always rename it if you want.

data want ;
 set have ;
 if missing(visitnum) then newvar+0.01 ;
 else newvar=visitnum;
run;
Obs    visitnum    newvar

 1         1        1.00
 2         .        1.01
 3         .        1.02
 4         2        2.00
 5         .        2.01
 6         3        3.00
Contributor
Posts: 56

Re: RETAIN VISITNUM WHEN MISSING

data given;
infile datalines dlm=' ' missover dsd;
input subject visit $11. visitnum 16-18;
datalines;
100 Screening 	-1
100 day 1 		 1
100 day 2 		 2
100 UNSCHEDULED 
100 UNSCHEDULED
100 day 3 		 3
100 day 4 		 4
100 UNSCHEDULED 
100 day 5	 	 5
100 UNSCHEDULED   
100 UNSCHEDULED  
100 UNSCHEDULED   
;
run;
data output1(rename=(nvar=visitnum));
length subject 3.;
length visit $20.;
set given;
if visitnum ge 1 or nmiss(visitnum) eq 1 then do;
if nmiss(visitnum) eq 1 then do; nvar+0.01;visit=catx(':',visit,put(nvar,4.2));end;
else  nvar=visitnum;visit=visit;end;
else nvar=visitnum;
drop visitnum;
run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 86 views
  • 2 likes
  • 2 in conversation