SAS填充空间

SAS填充空间,sas,string-length,pad,Sas,String Length,Pad,我有一个已经创建的数据集,需要对其进行格式化,以便将尾随/填充空格设置为指定的字符数 下面是STG数据集中的字段名 'Social Security Number (SSN)'n 'Date of Birth'n 'Last Name'n 'First Name'n SSN必须从位置1开始,并且在位置1-9处只能有9个字符 DOB必须从位置10开始,长度为8个字符,位置10-17 姓氏必须从位置18开始,长度为26个字符,位置18-43 名字必须从第44条开始,长度为20个字符,位置为4

我有一个已经创建的数据集,需要对其进行格式化,以便将尾随/填充空格设置为指定的字符数

下面是STG数据集中的字段名

'Social Security Number (SSN)'n
'Date of Birth'n 
'Last Name'n 
'First Name'n 
SSN必须从位置1开始,并且在位置1-9处只能有9个字符

DOB必须从位置10开始,长度为8个字符,位置10-17

姓氏必须从位置18开始,长度为26个字符,位置18-43

名字必须从第44条开始,长度为20个字符,位置为44-63

诸如此类

导出时,我需要能够看到字符串中存储的填充/尾随空格。我所有的字段都格式化为字符


最好的方法是什么?我曾尝试在数据步骤中指定长度和子Pad,但导出时,尾随空格丢失。

生成固定列文本文件非常简单。只需使用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;

你在创造什么?文本文件?是的,应该是文本文件。它需要上传到一个网站,该网站要求的格式是这样的。显示示例输入数据和预期的输出文件格式。谢谢汤姆。如前所述,它需要上传到一个网站,该网站要求的格式是这样的。我尝试了上述方法并添加了所需的其他字段,但收到了一个错误。错误23-2:无效的选项名称RECMF。想法?只要修改我的打字错误,代码就可以了。注意:如果您使用格式来填充每一列,则可能不需要包含RECFM=选项。谢谢。我想我快到了。我本来希望在单独的一行中看到每条记录,但是当在文本编辑器中打开时,它们似乎在一条记录上运行。这意味着第二条记录不在新行上,它在第一条记录之后开始。是否有一种方法可以在单独的行上开始每条记录?没什么大不了的。这正是最终用户所要求的。我会删除RECFM=F选项。让我用不同的方法更新答案,以确保所有行的长度相同。谢谢你,汤姆。我已将代码更改为您更新的语句,但现在有一个。在每条记录的最后显示。这些记录也没有像预期的那样位于单独的行上。