%let dirname = C:\Users\data;
filename DIRLIST pipe 'dir/B &dirname\*.dbf';
/* Create a data set with one observation for each file name */
data dirlist;
length fname $8.;
infile dirlist length=reclen;
input fname $8.;
run;
data all_text (drop=fname);
set dirlist;
filepath = "&dirname\"||fname||".dbf";
infile dummy filevar = filepath length=reclen end=done missover;
do while(not done);
INPUT
F1 : 2.
F2 : 2.
F3 : 2.
F4 : 10.
F5 : 4.;
output;
end;
run;
Проблема заключается в том, что она считывает только первую строку каждого файла, а не весь файл, прежде чем перейти к следующему. Также переменная F1 отображается как отсутствует.Как импортировать несколько файлов .dbf в SAS
Предложения приветствуются
Я пытаюсь импортировать несколько файлов .dbf в SAS с использованием макросов и труб. Я сделал это раньше для разных форматов файлов, используя стандартный код, доступный в Интернете, но я не смог сделать это для файлов .dbf. Моя структура данных следующая, которая одинакова для всех файлов. переменные: A - числовая длина 2; B - числовая длина 2; c - числовая длина 2; D - максимальная цифровая длина 10; E - числовая длина 4; Также каждое имя файла следует за xxx_xxxx.dbf –
Ваш код предназначен для чтения текстовых файлов. Для чтения файлов DBF используйте PROC IMPORT вместо DATA STEP. – Tom
Я верю, что могу использовать PROC IMPORT для одного файла за раз. Но мне нужно импортировать более 300 файлов .dbf и добавлять их вместе в один файл. пример кода его использования с помощью PROC IMPORT будет очень полезен –