BookmarkSubscribeRSS Feed
chintanpatel
Calcite | Level 5

data RandClass(drop=i);
call streaminit(1234);
set sashelp.cars(keep= Cylinders Horsepower EngineSize);
array x {*} _numeric_;
do i = 1 to dim(x);
   if rand("Bern", 0.1) then
   x[i]=.;  /* p=0.4 ==> about 40% missing */
   end;
run;

 

Hello everyone, this is my code to delete values from columns randomly. It is working completely fine.

In the code 0.1 decides the percentage to delete. if i write there 0.2 it will delete 20% of the values and so on. I want to run a loop there that it will select values from 0.1 to 0.4 by 0.05. so total it should do 7 times. and I want to store all this 7 databases for future use. can anyone help me to do it ?

1 REPLY 1
Reeza
Super User

Here's one way. Another is to use a macro loop to generate the data you need.

 

data RandClass;
	call streaminit(1234);
	set sashelp.cars(keep= Cylinders Horsepower EngineSize obs=50);
	array x {*} _numeric_;

	do p=0.1 to 0.5 by 0.1;
		do i = 1 to dim(x);
			if rand("Bern", p) then
				x[i]=.;
		end;

		output;
	end;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 959 views
  • 0 likes
  • 2 in conversation