编写代码以从 sas 代码生成新的 .sas 文件

问题描述 投票:0回答:2

我需要帮助,请帮助我,我想编写一个代码来从 sas 代码生成一个新的 .sas 文件,并在特定位置生成一个新文件。

提前致谢

我在 sas 中提取了 excel 工作表名称,并希望继续从此代码生成新的 .sas 文件

/**Assign a libname for excel sheet*/
libname inexcel xlsx '/home/viadmin/casuser/mapping.xlsx';

PROC CONTENTS DATA=inexcel._ALL_ noprint
OUT=Sheets (KEEP=Memname);
RUN;

PROC SORT DATA=Sheets NODUPLICATES;
BY Memname;
RUN;

DATA Sheets;
SET Sheets;
ID=_N_;
RUN;

DATA _NULL_;
IF 0 THEN SET Sheets NOBS=X;
CALL SYMPUT('Recount', X);
STOP;
RUN;


%macro Excel;
%DO i = 1 %TO &Recount;
PROC SQL ;
create table sheet&i. as
SELECT Memname INTO :Name
FROM Sheets WHERE ID = &i;
quit;
%end;
%mend;

%excel;

到目前为止,代码工作正常。 但在此之后我想为不同的名称生成新的 .sas 文件 就像-sheet1.sas,sheet2.sas

sas sas-macro
2个回答
0
投票

您对 sheet1.sas 文件有何期望?

您想要名称与工作表名称匹配的输出数据集吗?

考虑使用

XLSX
库引擎和
Proc COPY

libname mybook xlxs 'mapping.xlsx';

proc copy in=mybook out=work;
run;

0
投票

请参阅我的 GitHub 页面,了解如何从 SAS 生成 SAS 代码:https://github.com/savian-net/SasTipsTricks#dynamic-code

© www.soinside.com 2019 - 2024. All rights reserved.