Я импортирую файл из Excel, который выглядит так:
Row Col Bucket
1 2 01
2 2 00
%Macro ImportExcel(DF = , OF = , Type = , SheetName = );
proc import datafile = &DF
out = &OF dbms = &Type replace;
sheet = "&Sheetname";
run;
%Mend;
%ImportExcel(DF = "C:\Users\89974114\Documents\Book1.xlsx" , OF = Book1 , TYPE = xlsx , SheetName = Sheet1);
когда я импортирую файл, набор данных выглядит так
Row Col Bucket
1 2 1
2 2 0
По сути, я теряю свой собственный формат из Excel, и он возвращается к формату без значения по умолчанию, без начального нуля - есть ли способ обойти это?


Я не знаю, как применить информацию при использовании proc import - это своего рода тупой инструмент. Вы можете просто добавить небольшой шаг данных в свой макрос, например:
[proc import block]
data &OF ;
set &OF ;
format Bucket z2.;
run;
%Mend;
Или, если вы хотите преобразовать его в строку символов, измените строку формата на BucketC = put(Bucket,z2.);
Обновлено: Конечно, лучший способ - использовать PROC DATASETS для изменения формата, но это было слишком очевидно для моего тупого мозга.