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;

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Develop Code with SAS Studio

Get started using SAS Studio to write, run and debug your SAS programs.

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
  • 1076 views
  • 0 likes
  • 2 in conversation