在SAS中组合两个字符串作为文件路径



我有两个字符串,我想将它们组合起来,以获得SAS 中PROC IMPORT语句中使用的文件路径

%let TypeName = XYZ;
%let InputDirectory = \Nam1Nam2Nam3Dataset;
%let FileType = Filing.csv;
%let Filename = &TypeName&FileType;
%put &Filename;
%let CompInputDirect = &InputDirectory&Filename;
PROC IMPORT DATAFILE= %sysfunc(&CompInputDirect)
OUT= outdata
DBMS=csv
REPLACE;
GETNAMES=YES;
RUN;

我收到一条错误消息,说

ERROR: Function name missing in %SYSFUNC or %QSYSFUNC macro function reference.  

如何在Proc Import语句中放入包含完整文件路径的宏变量?提前谢谢。

我想你是想用QUOTE函数。

%sysfunc(quote(&CompInputDirect))

或者你可以提供自己的报价。

"&CompInputDirect"

宏符号分辨率&<name>更正式地称为&<name>.。当其他字符或令牌破坏提交流时,.通常会被忽略。

如果您已经抽象了一个点(.(文件扩展名,则需要小心。您需要双点来解析文件名,并用点分隔扩展名。处理文件名部分的一个好习惯是使用形式解析语法。

示例:

%let folder = \Nam1Nam2Nam3Dataset;
%let file = XYZ;
%let ext = csv;
proc import datafile = "&folder.&file..&ext." ...
^^

最新更新