全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
917 2
2019-07-02
现有程序如下,目前有100个药品(drug1~drug100)需要计算下列内容并将结果输入到一个表中。

proc sql;

select count(DISTINCT name) into: a FROM drug1 where name is notnull;

select count(DISTINCT name) into: b FROM (select drugname from drug1 where name in (select name from 某个表));

quit;



data 表2;
a=&a;

b=&b;

c=a*d/(a+b);

run;


分别计算drug1~drug100的a、b、c三个值,写入表2,如何用循环语句实现。


结果如下效果:


drugtableabc
drug110206.67
drug210206.67
drug310206.67
drug410206.67
drug510206.67
drug10010206.67

求大神,语句如何编写,谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2019-7-3 08:38:52
destroyingking 发表于 2019-7-2 10:13
现有程序如下,目前有100个药品(drug1~drug100)需要计算下列内容并将结果输入到一个表中。

proc sql;s ...
这很容易啊,一个宏搞定了,试试下面的代码
%macro loop;<br>
data 表2;<br>
%do i =1 %to 100;<br>
drugtable=drug&amp;i.;a=&amp;a.;b=&amp;b.;c=a*b/(a+b);output;<br>
%end;<br>
%mend loop;
%loop;
二维码

扫码加我 拉你入群

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

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

2019-7-4 08:07:37
统计研究生 发表于 2019-7-3 08:38
这很容易啊,一个宏搞定了,试试下面的代码
%macro loop;
data 表2;
谢谢大神
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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