Макропеременная для каждого разделителя для импорта нескольких файлов с разделителями в SAS - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть 2 разных файла с разделителями (csv и text) с переменными ниже соответственно. Первые 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);

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Спасибо, Шенглин

Я попробовал приведенный ниже код, и он отлично работает.

    %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);
0 голосов
/ 25 апреля 2018

Вы импортируете другой тип данных, поэтому вам нужно определить тип данных в дБмс.

%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);
...