有如下一段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;
运行以后得到如下的结果:
。。。。。
还有很多结果,因为是任意两个变量组合(一共19个变量),所以结果有19*18=342个组合的list
我想知道怎么把这342个小表格中最后一行,也就是满足两个变量取值都是1(表示同时使用这两种药物)的这个frequency,如29843,3422,4302这些结果输出到另外一个新的数据集中,方便比较大小,了解常见的药物组合。
希望大神们给予指点,万分感谢!!
|