Solved
Contributor
Posts: 56

# 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

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

## Re: RETAIN VISITNUM WHEN MISSING

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```

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

## Re: RETAIN VISITNUM WHEN MISSING

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.