全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10693 5
2017-03-18
data a1;
do i=1 to 20;
  x=compress('BO'||int(ranuni(123)*100)+1);
  output;
end;
run;
我随便生成一个数据集a1。
我想用a1数据集中的x变量作为源数据,生成新的变量y,y的取值是在x的范围内产生100个随机数,
请问该如何做呢?目前想到的办法是产生一个新的数据集然后通过生成随机序号merge数据集a1中的
序号得到x的随机数,如何不通过另外生成数据集完成呢?谢谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-19 16:54:36
先生成一百个随机数,假如最大的为b,最小的为a,那么((x-a)/(b-a))*100就可以控制在100以内了
二维码

扫码加我 拉你入群

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

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

2017-3-21 08:46:05
proc surveyselect data=a1 out=a2 method=urs n=100 outhits ;

二维码

扫码加我 拉你入群

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

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

2017-4-12 11:21:01
aaronor 发表于 2017-3-21 08:46
proc surveyselect data=a1 out=a2 method=urs n=100 outhits ;
谢谢!
二维码

扫码加我 拉你入群

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

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

2017-4-12 11:25:53
yafeijojy 发表于 2017-3-19 16:54
先生成一百个随机数,假如最大的为b,最小的为a,那么((x-a)/(b-a))*100就可以控制在100以内了
谢谢,好像不太对
二维码

扫码加我 拉你入群

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

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

2021-4-1 09:32:02
aaronor 发表于 2017-3-21 08:46
proc surveyselect data=a1 out=a2 method=urs n=100 outhits ;
但是这个程序可能会出现重复的结果,如何解决呀?
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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