输出多个数据集 [英] Output multiple dataset

查看:58
本文介绍了输出多个数据集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从一个数据集输出到多个数据集,所以我想编写这样的代码

I want output from one dataset to many datasets, so I want to code something like this

data SmallDatasetName_1 - SmallDatasetName_100;
set BigDatasetName;
/*here some code*/
run;

所以,如果我尝试这个,我会得到一个错误.我可以解决它(通过使用 select into).但是它是否存在一个简单"的语法,类似于

So, if I try this, I get an error. I could solve it (by using select into). But is it exist a "simple" syntax for this, similar to

data BigDatasetName;
set SmallDatasetName_1 - SmallDatasetName_100;
/*here some code*/
run;

?

推荐答案

据我所知,您不能在 data 语句中使用数据集列表.您可以使用宏来生成代码.首先定义宏:

As far as I know, you can't use data set lists in the data statement. You could use a macro to generate your code. First define the macro:

options mprint;
%macro split;
  data 
    %do I = 1 %to 5;
      SmallDatasetName_&I
    %end;;
    set BigDatasetName;
    %do I = 1 %to 5;
      if **your conditions here** then output SmallDatasetName_&I;
    %end;;
  run;
%mend split;

使用以下命令调用宏:

%split;

这会生成如下所示的 sas 代码:

This generates sas code like that looks like this:

data 
  SmallDatasetName_1
  SmallDatasetName_2
  SmallDatasetName_3
  SmallDatasetName_4
  SmallDatasetName_5
  ;
  set BigDatasetName;
  if **your conditions here** then output SmallDatasetName_1;
  if **your conditions here** then output SmallDatasetName_2;
  if **your conditions here** then output SmallDatasetName_3;
  if **your conditions here** then output SmallDatasetName_4;
  if **your conditions here** then output SmallDatasetName_5;
run;

这篇关于输出多个数据集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆