请教SAS高手一个数据步的问题(Do循环),谢谢啦!

我想在SAS中产生一系列的随机数,具体来说:对应id为1,产生1个随机数,对应id为2,产生2随机数,以此类推,一直到id=99时,产生99个随机数。但是我目前写的程序,... 我想在SAS中产生一系列的随机数,具体来说:对应id为1 ,产生1个随机数,对应id为2,产生2随机数,以此类推,一直到id=99时,产生99个随机数。但是我目前写的程序,每个id均只能产生一个随机数(也就是数据库里只有99条记录,但是我想得到1+2+3+...+99共4950条记录),不知道怎么实现。我写的程序如下:
%macro datas;
data s;
%do id= 1 %to 99;
ran=(248-((&id-1)*2))+(24.8-((&id-1)*0.2))*rannor(&id);
output;
%end;
run;
%mend datas;
%datas;
另外,为什么这段程序运行出来只有一个变量(即ran这个变量),没有id这个变量啊? 如果不是宏程序,为什么就会产生id和ran两个变量呢?
展开
 我来答
ziyenano
推荐于2018-05-07 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:69
采纳率:0%
帮助的人:91.2万
展开全部
data s;
do id=1 to 99;
do j=1 to id;
ran=(248-((j-1)*2))+(24.8-((j-1)*0.2))*rannor(j);
output;
end;
end;
run;
再套一个循环就好了,
宏程序的循环里面,id是作为宏变量~所以不会显示在数据集里面。
snake687
2011-12-02 · 贡献了超过214个回答
知道答主
回答量:214
采纳率:0%
帮助的人:150万
展开全部
谢谢!问题补充:不行啊 即使用scanf函数也是不行的 打断点发现程序到scanf一步是不会往下执行了 如果程序已经输出C值,那没有理由不输出是否继续?这
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式