SAS мягкие пространства - PullRequest
       24

SAS мягкие пространства

0 голосов
/ 03 октября 2019

У меня есть набор данных, который я создал, и он должен быть отформатирован, чтобы иметь пробелы в конце / дополнении до указанного числа символов.

Ниже приведены имена полей из набора данных STG.

'Social Security Number (SSN)'n
'Date of Birth'n 
'Last Name'n 
'First Name'n 

SSN должен начинаться с позиции 1 и иметь длину только 9 символов (позиция 1-9)

DOB должен начинаться с позиции 10 и иметь длину 8 символов (позиция 10-17)

Фамилия должна начинаться с позиции 18 и иметь длину 26 символов (позиция 18-43)

Имя должна начинаться с буквы 44 и иметь длину 20 символов (позиция 44-63)

и т. Д. И т. П.

При экспорте я должен иметь возможность видеть заполненные / завершающие пробелы, хранящиеся в строке. Все мои поля отформатированы как символы.

Как лучше всего подойти к этому? Я попытался указать длину и вложенную панель в шаге данных, но при экспорте завершающие пробелы теряются.

1 Ответ

1 голос
/ 03 октября 2019

Довольно просто создать текстовый файл с фиксированным столбцом. Просто используйте оператор PUT.

Вы можете принудительно задать строки фиксированной длины, написав пробел в последнем столбце перед записью фактических значений. Это обеспечит заполнение всех строк как минимум до этой длины.

 data _null_;
    file 'mydata.txt'  ;
    set have;
    put @63 ' '
      @ 1 SSN $9.
      @10 DOB yymmdd8.
      @18 LAST_NAME $26.
      @44 FIRST_NAME $20.
    ;
 run;
...