如何在SAS中去除前导零(有例子)

638 阅读1分钟

在SAS中去除字符变量中的前导零的最简单方法是使用INPUT函数将该变量转换为数字变量,从而自动去除前导零。

这个函数使用以下基本语法:

data new_data;
    set original_data;
    no_zeros = input(some_column, comma9.);
run;

下面的例子说明了如何在实践中使用这种语法。

例子:在SAS中去除前导零

假设我们在SAS中拥有以下数据集,显示各种零售店的总销售额:

/*create dataset*/
data original_data;
    input store $ sales $;
    datalines;
A 055
B 145
C 199
D 0000443
E 0093
F 00004302
G 38
H 0055
;
run;

/*view dataset*/
proc print data=original_data;

我们可以使用下面的代码来删除销售列中所有的前导零:

/*remove leading zeros in sales column*/
data new_data;
    set original_data;
    no_zeros = input(sales, comma9.);
run;

/*view results*/
proc print data=new_data;

SAS remove leading zeros

请注意,所有的前导零已经从no_zeros列的值中删除。

请注意,新的no_zeros列是一个数字列。

如果你想保持它是一个字符列,你可以用PUT函数环绕INPUT函数,如下所示:

/*remove leading zeros in sales column*/
data new_data;
    set original_data;
    no_zeros = put(input(sales, comma9.), 8.);
run;

/*view results*/
proc print data=new_data;

SAS remove leading zeros

如果我们使用proc contents来查看数据集中每个变量的数据类型,我们会看到no_zeros是一个字符变量:

/*view data type of each variable in new dataset*/
proc contents data=new_data;