Skip to content

Instantly share code, notes, and snippets.

@rpardee
Created August 10, 2018 17:31
Show Gist options
  • Save rpardee/677a043016e61f07b9bb70d29f25f19d to your computer and use it in GitHub Desktop.
Save rpardee/677a043016e61f07b9bb70d29f25f19d to your computer and use it in GitHub Desktop.
* Gimme 10 records of a random var. ;
data fake_data ;
do cnt = 1 to 10 ;
randy = uniform(7376) ;
output ;
end ;
keep randy ;
run ;
proc sort data = fake_data ;
by randy ;
run ;
data explicit ;
retain a_one a_two a_three ;
set fake_data ;
if _n_ = 1 then do ;
a_one = 0 ;
a_two = 0 ;
a_three = 0 ;
end ;
if a_one = 0 and randy ge .3 then a_one = 1 ;
if a_two = 0 and randy ge .4 then a_two = 1 ;
if a_three = 0 and randy ge .75 then a_three = 1 ;
run ;
title1 "Vars named individually on retain." ;
proc print data = explicit ;
var randy a_one a_two a_three ;
run ;
data wildcard ;
retain a_: ;
set fake_data ;
if _n_ = 1 then do ;
a_one = 0 ;
a_two = 0 ;
a_three = 0 ;
end ;
if a_one = 0 and randy ge .3 then a_one = 1 ;
if a_two = 0 and randy ge .4 then a_two = 1 ;
if a_three = 0 and randy ge .75 then a_three = 1 ;
run ;
title1 "Vars retained w/a wildcard" ;
proc print data = wildcard ;
var randy a_one a_two a_three ;
run ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment