SAS:使用宏导入多个文本文件

时间:2015-09-22 21:20:32

标签: sas

我正在使用SAS导入数百个csv文件。

有300个城市数据集具有以下命名约定( Shanghai001-Shanghai100,London001-London100,Newyork001-Newyork100 )。

我当前的导入代码是

data shanghai001;
  infile 'H:\shanghai001.csv'
  delimiter = ',' DSD lrecl=32767 firstobs=2;

  informat Date_L_ DATE11.;
  informat Time_L_ time18.3;
  informat Type $10.;

  format Date_L_ DATE11.;
  format Time_L_ time18.3;
  format Type $10.;

  input
  Date_L_
  Time_L_
  Type  $
  ;                                         
run;

此代码有效,但我只是想知道如何使用 macro 导入这300个数据集?

任何聪明人都可以告诉我?

1 个答案:

答案 0 :(得分:3)

您可以使用宏来执行此操作,但您不需要。将所有CSV文件读入单个数据集可能要容易得多。您可以添加FNAME和VERSION等变量来判断哪些观察来自哪个源文件。

    Collection<Object> data = new LinkedList<>();
    while(true) {
        long[] canBeGarbageCollected = new long[10000];
        long[] canNotBeGarbageCollected = new long[100];
        data.add(Arrays.asList(canNotBeGarbageCollected));
    }