我有两个字符串,我想将它们组合起来,以获得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." ...
^^