全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6535 7
2012-08-31
请教各位,现有如此考题一道:
不使用proc步从变量A中选取随机一人(因此不能procsort不能procsql),原始dataset只有abcde五个人的名字列表。
估计其目的是想考核考生的array或retain用法知识。我就打算给每人一个随机值,然后选取最大或最小值的那个…… 应该也算是随机选取的吧?

但现在我做到这一步:变量A为ace,boy,cat,dog,egg五个人名,变量B是一栏随机值(使用ranuni或uniform生成的数)
data random;
set name;
random=uniform(99);
retain maxs;
maxs=max(random, maxs);

这样dataset就变成(random的值我瞎编的)
name     random  maxs
ace         0.7         0.7
boy        0.3         0.7
cat         0.2         0.7
dog        0.9         0.9
egg        0.8         0.9

到这一步我就走不下去了,如何才能选取为0.9的那个值呢,如果最后一行加上
if maxs=random; 的话,那第一条不是最大的也会被包括进去,请问如何进行下一步的操作呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-8-31 20:28:16
楼主把简单问题复杂化了。随机选取一个观测,可以参考以下代码:
复制代码
或者见下面链接:
http://blog.sina.com.cn/s/blog_41889b9001016663.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-31 21:29:03
多谢大侠,之前google了几个”以data步进行简单抽样“的搜索,找到的都是surveyselect和用retain的,唯独没有搜索到您这篇博客上的内容,已收藏您的博客!

不过在下还有点疑问,虽然结果是出来了,但是依在下的水平对于您这段代码我实在无法彻底的理解,能否麻烦您简单解释下
point=pickid  nobs=Totobs这里和最后stop 是什么意思吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-31 23:37:11
madkoala 发表于 2012-8-31 21:29
多谢大侠,之前google了几个”以data步进行简单抽样“的搜索,找到的都是surveyselect和用retain的,唯独没 ...
客气。这两个都是set语句的选项。常配合起来用于非顺序读取dataset里的观测。point是指针,指定set语句读第几条观测。NOBS存储的是DATASET的数集观测数。当非顺序读取时,SAS DATA步无法自动结束,需要STOP语句.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-1 00:01:52
连起来看终于彻底理解了!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-1 02:57:27
如果用rand('UNIFORM'),好象比用ranuni(123)更好?因为用ranuni(123),每次选出来的会是同一个,而用rand('UNIFORM'),每次选出来的都会不一样!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群