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

Combine two strings for file path in SAS

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

%let TypeName = XYZ;
%let InputDirectory = \Nam1\Nam2\Nam3\Dataset\;
%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 = \Nam1\Nam2\Nam3\Dataset\;
%let file = XYZ;
%let ext = csv;

proc import datafile = "&folder.&file..&ext." ...
                                     ^^