SAS计算两个数据集的比例

SAS Calculate the proportion of two datasets

我有两个数据集,假设一个有100个观察,另一个有50个。所以,这两个数据集的比例是100/50=2。有谁知道如何在SAS中计算这个数字并将其保存以供以后编程?提前致谢!

获取数据集obs的方式有很多种,例如:proc SQL insert into, proc contents output, using SASHELP tables, using the end= statement in a datastep.

不过我喜欢用 SAS 宏变量(使用 %let 和 %sysfunc)来做,因为它让你像个坏蛋。你想看起来像个坏蛋吗? 像这样的东西(我没有在我面前打开 SAS 来测试所以语法可能有点错误):

%macro getobs(mydata);
    %let data_open=%sysfunc(OPEN(&mydata.,IN));
    %let NOBS_&mydata.=%sysfunc(ATTRN(&data_open,NLOBS));
    %let data_close=%sysfunc(CLOSE(&data_open));
%mend;

那么您应该能够使用 NOBS_&mydata 变量来获取所需的比例值(尽管您可能需要在宏中使用 %global NOBS_&mydata. 语句……我不确定)。类似于:

%let proportion = &NOBS_data1 / &NOBS_data2;

试一试,看看你有什么想法。