将大型SAS数据集拆分为较小的数据集(Split large SAS dataset into smaller datasets)

编程入门 行业动态 更新时间:2024-10-28 11:29:33
将大型SAS数据集拆分为较小的数据集(Split large SAS dataset into smaller datasets)

我需要一些帮助,将大型SAS数据集拆分为较小的数据集。

每个月我都会有一个包含几百万条记录的数据集。 这个数字每个月都有所不同。 我需要将此数据集拆分为多个较小的数据集,每个数据集包含250,000条记录。 例如,如果我在原始数据集中有1,050,000条记录,那么我需要最终结果是包含250,000条记录的4个数据集和包含50,000条记录的1个数据集。

从我一直看来,它似乎需要使用宏。 不幸的是,我对SAS很熟悉(不熟悉使用宏)并且没有太多时间来完成这项工作。 任何帮助将不胜感激。

I need some assistance with splitting a large SAS dataset into smaller datasets.

Each month I'll have a dataset containing a few million records. This number will vary from month to month. I need to split this dataset into multiple smaller datasets containing 250,000 records each. For example, if I have 1,050,000 records in the original dataset then I need the end result to be 4 datasets containing 250,000 records and 1 dataset containing 50,000 records.

From what I've been looking at it appears this will require using macros. Unfortunately I'm fairly new to SAS (unfamiliar with using macros) and don't have a lot of time to accomplish this. Any help would be greatly appreciated.

最满意答案

基于乔的回答,也许你可以尝试这样的事情:

%MACRO SPLIT(DATASET); %LET DATASET_ID = %SYSFUNC(OPEN(&DATASET.)); %LET NOBS = %SYSFUNC(ATTRN(&DATASET__ID., NLOBS)); %LET NB_DATASETS = %SYSEVALF(&NOBS. / 250000, CEIL); DATA %DO I=1 %TO &NB_DATASETS.; WANT&I. %END;; SET WANT; %DO I=1 %TO &NB_DATASETS.; %IF &I. > 1 %THEN %DO; ELSE %END; IF _N_ LE 2.5E5 * &I. THEN OUTPUT WANT&I.; %END; RUN; %MEND SPLIT;

Building on Joe's answer, maybe you could try something like this :

%MACRO SPLIT(DATASET); %LET DATASET_ID = %SYSFUNC(OPEN(&DATASET.)); %LET NOBS = %SYSFUNC(ATTRN(&DATASET__ID., NLOBS)); %LET NB_DATASETS = %SYSEVALF(&NOBS. / 250000, CEIL); DATA %DO I=1 %TO &NB_DATASETS.; WANT&I. %END;; SET WANT; %DO I=1 %TO &NB_DATASETS.; %IF &I. > 1 %THEN %DO; ELSE %END; IF _N_ LE 2.5E5 * &I. THEN OUTPUT WANT&I.; %END; RUN; %MEND SPLIT;

更多推荐

本文发布于:2023-07-22 19:19:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1222704.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   较小   Split   SAS   smaller

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!