全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1883 2
2020-05-01
悬赏 30 个论坛币 未解决
有如下一段code:

%let frid_list=a06aa a06ab c01aa g04cb g04bd j01db j01ff n02aa n03ae  

n03af n03ax n04ba n04bc n06ab n06ax n06da r01ad r03cc s01la; /*一些药物的代码*/

%let nmedicine=%sysfunc(countw(&frid_list));

%macro medicine;

%do i=1 %to %nmedicine;

%let c=%scan(&frid_list,&i);

%do h=1 to %nmedicine-1;

%let d=%scan(&frid_list,&i+1);

proc freq data=mywork.a1; /*这个数据集里面包含有a06aa a06ab c01aa g04cb g04bd j01db j01ff n02aa n03ae  

n03af n03ax n04ba n04bc n06ab n06ax n06da r01ad r03cc s01la 这些变量,每个变量的值为0或者1,1表示使用过该药物,0表示没有*/

tables &c*&d/list;   /*想找出以上任意两个变量组合的频数*/

quit;

%end;

%end;

%mend medicine;

%medicine;


运行以后得到如下的结果:
IMG_6380.JPG




。。。。。
还有很多结果,因为是任意两个变量组合(一共19个变量),所以结果有19*18=342个组合的list

我想知道怎么把这342个小表格中最后一行,也就是满足两个变量取值都是1(表示同时使用这两种药物)的这个frequency,如29843,3422,4302这些结果输出到另外一个新的数据集中,方便比较大小,了解常见的药物组合。

希望大神们给予指点,万分感谢!!




二维码

扫码加我 拉你入群

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

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

全部回复
2020-5-1 12:12:21
还是从原来的mywork.a1数据集入手?找出“&c”和“d”同时等于1的obs? 可是还是想知道proc freq的结果如何输出,感谢大神们的关注和解答!
二维码

扫码加我 拉你入群

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

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

2020-5-2 13:16:00
导出结果至数据集并做条件控制。
复制代码


二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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