gnim 发表于 2017-9-9 23:13
在SAS advance certificate 上一段程序,page 458 望指点。谢谢!!
data work. rsubset(drop =obslef ...
决定随机的不是pickit
注意set语句里面 point=pickit ,指定临时变量pickit里面包含的数值决定了哪一行观测被读取,然后pickit+1这句再在每次执行改变指定的行。
注意sampsize=10和do while (sampsize>0)和里面sampsize=sampsize-1就决定了一共只读十条观测。
然后if语句那里,ranuni()函数才是决定随机的,ranuni(0)每次随机生成0-1之间的值,当ranuni(0)<sampsize/obsleft时,(这里obsleft通过nobs=totobs指定等于观测总数,且obsleft-1这句使得obsleft的值也每次变),由此执行set语句,故达到随机抽取其中十条观测的目的。。。。。
逻辑很绕,我也看了好久才看明白,比较少用得到,会考的点好像是ranuni(seed),就是里面的是seed不同值返回什么结果
seed是同一个正数时返回结果不变,是0时每次随机生成值,可以敲代码看看不同值的结果。
ranuni()在sas官方的定义是从均匀分布返回一个随机变量