Variables 为SAS中的文件路径组合两个字符串

Variables 为SAS中的文件路径组合两个字符串,variables,sas,filepath,sas-macro,Variables,Sas,Filepath,Sas Macro,我有两个字符串,我想合并它们以获得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&a

我有两个字符串,我想合并它们以获得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语句中?提前谢谢。

我想你是想使用报价功能

%sysfunc(quote(&CompInputDirect))
或者你可以提供自己的报价

"&CompInputDirect"

我想你是想用引号功能

%sysfunc(quote(&CompInputDirect))
或者你可以提供自己的报价

"&CompInputDirect"

宏符号解析
&
更为正式
&。
当解析发生在其他字符或令牌中断提交流时,
通常被取消

如果提取了点(
)文件扩展名,则需要小心。您将需要双点来解析文件名,并用点分隔扩展名。处理文件名部分时的一个好习惯是使用正式解析语法

例如:

%let folder = \\Nam1\Nam2\Nam3\Dataset\;
%let file = XYZ;
%let ext = csv;

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

宏符号解析
&
更为正式
&。
当解析发生在其他字符或令牌中断提交流时,
通常被取消

如果提取了点(
)文件扩展名,则需要小心。您将需要双点来解析文件名,并用点分隔扩展名。处理文件名部分时的一个好习惯是使用正式解析语法

例如:

%let folder = \\Nam1\Nam2\Nam3\Dataset\;
%let file = XYZ;
%let ext = csv;

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

嗨@data\u null谢谢你!嗨@data\u null谢谢你!