我正在从包含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格式不会让我根据传入变量动态定义结果.
我相信这里有一个明显的解决方案,但我只是错过了它.
这是一个替代方案:
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)