我需要一些帮助,将大型SAS数据集拆分为较小的数据集.
每个月我都会有一个包含几百万条记录的数据集.这个数字每个月都有所不同.我需要将此数据集拆分为多个较小的数据集,每个数据集包含250,000条记录.例如,如果我在原始数据集中有1,050,000条记录,那么我需要最终结果是包含250,000条记录的4个数据集和包含50,000条记录的1个数据集.
从我一直看来,它似乎需要使用宏.不幸的是,我对SAS很熟悉(不熟悉使用宏)并且没有太多时间来完成这项工作.任何帮助将不胜感激.
我正在尝试使用数组来完成以下任务。但是,我以前从未使用过,并且遇到了一些麻烦。
基本上,我想获取以下数据并为每个acct,seq1,seq2组合创建一行(观察):
acct seq1 seq2 la ln
9999 1 10 20.01 100
9999 1 10 19.05 1
9999 2 11 26.77 100
9999 2 11 24.86 1
8888 3 20 38.43 218
8888 3 20 37.53 1
Run Code Online (Sandbox Code Playgroud)
这就是我要结束的。注意,为了节省空间,我仅显示la1到la3和ln1到ln3。实际上将转到la7和ln7:
acct seq1 seq2 la1 la2 la3 ln1 ln2 ln3
9999 1 10 20.01 19.05 . 100 1 .
9999 2 11 26.77 24.86 . 100 1 .
8888 3 20 38.43 37.53 . 218 1 .
Run Code Online (Sandbox Code Playgroud)
这是到目前为止我尝试过的代码。任何帮助将不胜感激:
data want;
set have;
by …Run Code Online (Sandbox Code Playgroud) 是否可以使用proc报告在一个excel工作表上堆叠多个表?例如,下面是我的代码的简化版本,我想使用第一个proc报告显示table1,然后跳过一行并在同一工作表的正下方显示table2.
ods listing close;
ods results off;
ods tagsets.excelxp file="c:\temp\char.xls" style=esgexcel ;
proc report data=table1 missing nowindows spacing=1;
column field1
field2
field3
;
define field1 / 'acct';
define field2 / format=mmddyy10. 'date';
define field3 / format=dollar22.2 'value';
run;
proc report data=table2 missing nowindows spacing=1;
column field1
field2
field3
;
define field1 / 'acct';
define field2 / format=mmddyy10. 'date';
define field3 / format=dollar22.2 'value';
run;
ods tagsets.excelxp close;
ods listing;
ods results;
Run Code Online (Sandbox Code Playgroud)
它不起作用.它将两个proc报告放在单独的工作表上.