Неправильный макет при записи данных SAS в .txt с кодировкой UTF-8

Я могу экспортировать наборы данных SAS в текстовые файлы с кодировкой UTF-8. Но я увидел, что формат полностью изменился, когда я преобразовал в текст с кодировкой UTF-8. Программа, которую я использовал:

%do i=1 %to &num_file;
data _null_ (encoding="utf-8");
set sasdata.&&filename&i.;
file "&dir.\&&filename&i...txt" encoding="utf-8";
put _all_;
run;
%end;

Набор данных SAS выглядит так:

Var_1  Var_2   Var_3 
100    ABC     40 

Текстовый файл выглядит так:

Var_1=100 Var_2=ABC Var_3=40 
Var_1=101 Var_2=DEF Var_3=20 

Что мне нужно, чтобы получить тот же макет данных, но в файле .txt с кодировкой UTF-8?


Спасибо, что направил меня к этому обсуждению, @Joe!! Я смог заставить эту работу работать со следующим кодом:

%do i=1 %to &num_file; 
  FILENAME out&i. "&Report.\&&filename&i...txt" encoding="utf-8"; 
  proc export data=sasdata.&&filename&i. outfile=out&i. dbms=tab replace; 
  run; 
%end;

person rom    schedule 16.06.2014    source источник


Ответы (1)


Вот что получается при использовании

put _all_;

Это не связано с кодировкой файла UTF-8. Вам нужно использовать

put
@start variable length/format.
@start variable length/format.

и т. д., или любой из многочисленных других вариантов размещения данных с фиксированным столбцом.

person Joe    schedule 16.06.2014