DATA Step, Macro, Functions and more

Syntax to change missing values

Reply
Learner
Posts: 1

Syntax to change missing values

[ Edited ]

I am looking for syntax to change the missing values of a variable to the average of the remaining values of the same variable

 

for example:

for the variable duration-

duration : 10 20 30 40 . . .  ( . meaning missing values )

I want to replace the three missing values with the average of 10 20 30 40. I want to repliate this over a variable having more than 1000 values.

 

Can anyone help me out ?

 

Many Thanks!

Super User
Posts: 10,023

Re: Syntax to change missing values

data have;
input duration;
cards;
10 
20 
30 
40 
. 
. 
. 
;
run;

proc stdize data=have missing=mean reponly out=want;
var _numeric_;
run;
Super User
Super User
Posts: 7,942

Re: Syntax to change missing values

As an option, you could also do:

proc sql;
  create table WANT as
  select  coalesce(DURATION,(select mean(DURATION) from HAVE)) as DURATION
  from    HAVE;
quit;
PROC Star
Posts: 1,759

Re: Syntax to change missing values

Not having a nested clause speeds things up a bit.

 

create table WANT as
select coalesce(DURATION, mean(DURATION) ) as DURATION
from HAVE;

Ask a Question
Discussion stats
  • 3 replies
  • 340 views
  • 6 likes
  • 4 in conversation