如何在SAS中填充字符字段?

pur*_*ows 7 sas

我正在从包含VARCHAR(5)密钥字段的数据库创建SAS数据集.

此字段包括一些使用全部5个字符的条目和一些使用较少字符的条目.

当我导入这些数据时,我宁愿填写所有较短的条目以使用所有五个字符.对于这个例子,我想在左边填充0,字符为零.因此,114将成为00114,ABCD将成为0ABCD,EA222并将保持原样.

我尝试使用简单的数据语句,但当然以下方法不起作用:

data test;
    set databaseinput;
    format key $5.;
run;
Run Code Online (Sandbox Code Playgroud)

我已尝试使用用户定义的信息执行此操作,但我不认为可以根据此SAS KB答案在字符字段上正确指定范围.另外,我很确定proc格式不会让我根据传入变量动态定义结果.

我相信这里有一个明显的解决方案,但我只是错过了它.

Chr*_*isP 6

这是一个替代方案:

data padded_data_dsn; length key $5;
    drop raw_data;
    set raw_data_dsn(rename=(key=raw_data));
    key = translate(right(raw_data),'0',' ');
run;
Run Code Online (Sandbox Code Playgroud)


小智 5

Data raw_data_dsn;
format key $5.;
key = '4'; key1 = CATT(REPEAT('0',5-length(key)),key);output;
key = 'A114'; key1 = CATT(REPEAT('0',5-length(key)),key);output;
key = 'A1140'; key1 = CATT(REPEAT('0',5-length(key)),key);output;
run;
Run Code Online (Sandbox Code Playgroud)