在 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." ...
^^
我有两个字符串,我想合并它们以获得要在 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." ...
^^