要基于SAS中的变量创建一些数据集吗

要基于SAS中的变量创建一些数据集吗,sas,Sas,我是SAS的新手。我已经编写了在SAS中执行一些数据操作的代码。挑战在于每次 执行这段代码时,我必须手动更改数据集的名称。这花了很多时间。命名约定中有一些模式。 假设我的数据集名称是2016年12月的XXX。因此,在执行之前,我已在2017年1月将名称更改为XXX 示例代码: data XXX_IN_MUM_Dec_2016; set XXX_IN_MUM_Dec_2016; FILENAME_MONTH=input(CATS(strip("01"),SCAN(strip(filename_BI

我是SAS的新手。我已经编写了在SAS中执行一些数据操作的代码。挑战在于每次 执行这段代码时,我必须手动更改数据集的名称。这花了很多时间。命名约定中有一些模式。 假设我的数据集名称是2016年12月的XXX。因此,在执行之前,我已在2017年1月将名称更改为XXX

示例代码:

data XXX_IN_MUM_Dec_2016;
set XXX_IN_MUM_Dec_2016;
FILENAME_MONTH=input(CATS(strip("01"),SCAN(strip(filename_BILL),4,"_")),anydtdte.);
format FILENAME_MONTH monyy7.;
if intnx('month','1SEP2016'd,0,'b'). <= FILENAME_MONTH <= intnx('month','1FEB2017'd,0,'e') then output;
run;
2016年12月30日的数据;
在2016年12月底设置XXX;
文件名\月份=输入(CATS(条带(“01”)、扫描(条带(文件名\账单)、4、”)、任意数据);
格式文件名为每周一7。;

如果intnx('month','1SEP2016'd,0,'b') 每次启动SAS会话时,系统都会自动创建宏变量SYSDATE。它显示两位数的日期、月份名称的前三个字母和两位数的年份。因此,您可以使用它:

%let month = %substr(&sysdate, 3, 3);
%let year = %substr(&sysdate, 6, 2);
%put &month &year;

data XXX_IN_MUM_&month._20&year;
    set XXX_IN_MUM_&month._20&year;
    /* your code*/
run;

今天,数据集名称在2017年3月9日解析为XXX。

您是否还想更改
IF
语句中使用的日期范围?是……在大多数情况下,请更新问题以反映您真正需要的内容。你的日期值是多少?今天的日期?还有别的吗?你需要把它转换成什么日期?您需要将日期转换为什么格式以匹配文件/数据集的命名方式?