在开头变换0值的数字

时间:2016-08-31 13:56:22

标签: sas

我有以下数据集:

DATA survey; 
 INPUT zip_code number; 
 DATALINES; 
 1212 12
 1213 23
 1214 23
 ; 
 PROC PRINT; RUN;

我想将此数据链接到另一个表,但事实是另一个表中的数字按以下格式存储:0012,0023,0023。

所以我正在寻找一种方法来做到以下几点:

  • 检查号码的长度
  • 如果长度= 1,则在开头添加3 0个值
  • 如果长度= 2,则在开头添加2 0个值

关于如何让这个工作的任何想法?

3 个答案:

答案 0 :(得分:2)

数字是数字,所以如果另一个表格中包含该字段,那么您不需要做任何事情。 13 = 0013 = 13.00 = ....

如果另一个表实际上有一个字符变量,那么你需要转换一个或另一个。

char_number = put(number, Z4.);
number = input(char_number, 4.);

答案 1 :(得分:1)

您可以使用z#.格式来完成此任务:

DATA survey; 
 INPUT zip_code number; 
 DATALINES; 
 1212 12
 1213 23
 1214 23
 9999 999
 8888 8
 ; 

data survey2;   
    set survey;
    number_long = put(number, z4.);
run;

答案 2 :(得分:0)

如果你需要长度为四个字符,那么你可以这样做:

print