Macros 用于在SAS中导入多个分隔文件的每个分隔符的宏变量

Macros 用于在SAS中导入多个分隔文件的每个分隔符的宏变量,macros,sas,Macros,Sas,我有两个不同的分隔文件csv和文本,分别包含以下变量。前3个是特征变量,其余是数字变量:植物、类型、处理、浓度、吸收。文本文件有5个数字变量和一个字符变量。作为练习的一部分,我想为SAS中的每个分隔符使用一个宏变量导入这两个文件。 下面是使用宏提取多个文件的代码。我想听听您关于如何为每个分隔符csv文本创建宏变量的建议 %macro one (output, Sample); proc import out=output datafile= "C:\Users\komal\Desktop\S

我有两个不同的分隔文件csv和文本,分别包含以下变量。前3个是特征变量,其余是数字变量:植物、类型、处理、浓度、吸收。文本文件有5个数字变量和一个字符变量。作为练习的一部分,我想为SAS中的每个分隔符使用一个宏变量导入这两个文件。 下面是使用宏提取多个文件的代码。我想听听您关于如何为每个分隔符csv文本创建宏变量的建议

%macro one (output, Sample);

proc import out=output

datafile= "C:\Users\komal\Desktop\Sample.csv"

dbms=csv replace;

getnames=yes;

run;

%mend one;

%one (output, Sample.csv);
%one (data2, datafiletwo.txt);

导入不同类型的数据,因此需要在dbms中定义数据类型

%macro one (output, Sample,type);
    proc import out=&output
    datafile= "C:\Users\komal\Desktop\&Sample"
    dbms=&type replace;
    getnames=yes;
    run;
%mend one;

%one (output, Sample.csv,cvs);
%one (data2, datafiletwo.xlsx,excel);
%one (class, class.txt,tab);
谢谢盛林

我已经尝试了下面的代码,它工作得非常好

    %macro one (a, b, c);
    proc import out=&a
    datafile= "C:\Users\komal\Desktop\&b"
    dbms=&c replace;
    getnames=yes;
    run;
%mend one;

%one (outcsv, Sample.csv, csv);
%one (outtab, datafiletwo.txt, tab);

请澄清:您的第一个文件是逗号分隔的值文件,因此是%one输出,Sample.csv;,但是您说您的第二个文件是文本文件,并且您编写了%one data2,datafiletwo.xlsx;,显然是指excel工作簿。第二个文件是txt文件而不是excel文件。这只是一个例子。