DATA Step, Macro, Functions and more

Need help in SAS query

Reply
Contributor
Posts: 20

Need help in SAS query

I need to change data in my numeric columns named NUM1-NUM90 (90 columns).

Whereever its '.' i need to replace it with '0'

Also tthere is a where clause to select model_type.

 

For example..the query should be: In a dataset for model_type='Business'  set all '.' values to '0' for  columns(WRA1-WRA90) .

 

Please help me have a query or suggestion,how to take care of this.Thanks!

PROC Star
Posts: 763

Re: Need help in SAS query

[ Edited ]

Apply this simple example of 3 columns to your 90 and add a where clause where needed

 

data have;
input WRA1-WRA3;
datalines;
1 2 .
. 4 6
4 . 9
;

data want(drop = i);
	set have;
	array wras[*] WRA1-WRA3;

	do i = 1 to dim(wras);
		if wras[i] = . then wras[i] = 0;
	end;
run;

 

Trusted Advisor
Posts: 1,580

Re: Need help in SAS query

data want;

   set have;

        array wr {90} wra1-wra90;

       do i=1 to 90; if wr(i)=. then wr(i)=0; end;

run;

Contributor
Posts: 20

Re: Need help in SAS query

Where will i have Where clause for Model_type= Business ?

PROC Star
Posts: 7,487

Re: Need help in SAS query

data want;
   set have;
   array wr {90} wra1-wra90;
   id model_type eq 'Business' then do;
      do i=1 to 90;
        if missing(wr(i)) then wr(i)=0;
     end;
  end;
run;

Art, CEO, AnalystFinder.com

 

PROC Star
Posts: 283

Re: Need help in SAS query

You have got your answers from the others, you should attempt a little to make the discussion interesting. Anyway, here you go:

data want(drop = i);
set have;
array wras[*] WRA1-WRA90;
if upcase(model_type)='BUSINESS' then do;
do i = 1 to dim(wras);
if wras[i] = . then wras[i] = 0;
end;

end;
run;

Ask a Question
Discussion stats
  • 5 replies
  • 112 views
  • 0 likes
  • 5 in conversation