我需要帮助,请帮助我,我想编写一个代码来从 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
您对 sheet1.sas 文件有何期望?
您想要名称与工作表名称匹配的输出数据集吗?
考虑使用
XLSX
库引擎和 Proc COPY
。
libname mybook xlxs 'mapping.xlsx';
proc copy in=mybook out=work;
run;
请参阅我的 GitHub 页面,了解如何从 SAS 生成 SAS 代码:https://github.com/savian-net/SasTipsTricks#dynamic-code