I am trying to randomize the numbers in my dataset for a few different variables. The macro that I am using to do this is currently: %macro RandBetween(min, max);
(&min + ((1+&max-&min)*abs(rand("normal"))))
%mend; I think my understanding of a normal distribution isn't correct since %RandBetween(0,1) seems to be returning numbers greater than 1 as well. This obviously will return an incorrect 'percentage' variable since I want that to have a maximum value of 1 (100%). Consequently, other variables that are generated like this: avg_opioid = %RandBetween(0,&max_avg_opioid.); also seem to have values greater than their max (presumably because the rand("normal") function is returning numbers greater than 1. I have also tried rand("normal",0.5,0.5) but that doesn't seem to help either. At this point, I think my understanding of the normal distribution may be skewed. How do I go about limiting the return of rand("normal") to a min and max of 0 and 1 respectively?
... View more