SAS从月度数据集中检索数据

SAS从月度数据集中检索数据,sas,Sas,我在sas数据集中有2个变量和3个记录,根据该数据集中的日期字段,我需要读取不同的月度数据集。 例如 我有 当我读取第一条记录时,根据此处的日期字段(2015年6月30日),它应该将另一个后缀为2015年6月30日的数据集与当前数据集合并 我怎样才能做到这一点呢?因此,我冒昧地猜测一下您在寻找什么,我留下了一点空白,您必须为自己的合并指定标准 1) 读入基础数据 data MAIN_DATA; infile cards; input ITEM_NO DATE:date9.; format DAT

我在sas数据集中有2个变量和3个记录,根据该数据集中的日期字段,我需要读取不同的月度数据集。 例如 我有

当我读取第一条记录时,根据此处的日期字段(
2015年6月30日
),它应该将另一个后缀为
2015年6月30日
的数据集与当前数据集合并


我怎样才能做到这一点呢?

因此,我冒昧地猜测一下您在寻找什么,我留下了一点空白,您必须为自己的合并指定标准

1) 读入基础数据

data MAIN_DATA;
infile cards;
input ITEM_NO DATE:date9.;
format DATE date9.;
cards;
1 30JUN2015
2 31JUL2015
3 31AUG2015
;
run;
2) 将所有日期:存储到宏变量date1到daten中。假设ddmmyy6。是表名的良好格式

Data _null_;
Set Main_data;
Call symputx('date'||strip(_n_),put(DATE,ddmmyy6.));
Call symputx('daten', _n_);
Run;
3) 读入变量并读取关联的表-您还没有指定如何进行合并,所以我将由您决定

%macro readin;
  %do i = 1 %to &daten;
    data NEW_TABLE_&&date&i..;
    set TEST_&&date&i..; /*in this step you can merge on the original table however you intend to*/
    run;
  %end;
%mend readin;
%readin;

当它读取下一条记录时会发生什么?请发布一些示例数据和您尝试过的内容。由于这个问题,它不符合SO规则。当它读取第二条记录时,由于日期是2015年7月31日,它必须与另一个数据集合并,例如“Test_072015”。您几乎没有充分解释发生了什么。“与另一个数据集合并”一点也不具体——如果没有更多的上下文,在这里也没有什么意义。当您与另一个数据集“合并”时会发生什么?这有什么意义?另一个数据集的内容是什么?如果它有许多行,是否希望将所有这些行插入第一个表中,并将项目编号和日期列重复相同的次数?
%macro readin;
  %do i = 1 %to &daten;
    data NEW_TABLE_&&date&i..;
    set TEST_&&date&i..; /*in this step you can merge on the original table however you intend to*/
    run;
  %end;
%mend readin;
%readin;