将数字转换为字符20

时间:2011-05-13 12:55:52

标签: input sas put

您好我正在构建数据集,但我合并的数据格式不同。

从Excel工作表我导入数字8,其他2合并的数据集是字符20,所以我想将数字8更改为字符20。

如何将变量acctnum更改为char 20? (我也希望保留这个名称,因为我假设将创建一个新变量)

data WORK.T82APR;       
set WORK.T82APR;
rename F1 = acctnum f2 = tariff;
run;

proc contents data=T82APR;
run;

2 个答案:

答案 0 :(得分:3)

虽然这个帖子已经死了,但我想我会回答为什么14位数的转换成为E符号。

通常,或者更确切地说,除非另有说明,SAS中的数字格式使用BEST12格式。因此,当数值超过12个字符(包括任何逗号和句点)时,BEST12选择E符号作为格式化值的最佳方式。

输入函数,在这种情况下接收格式化值put(acctnum,BEST12。)。它有两种方法。

使用

input(put(acctnum, 14.), $20.);

或者,使用format语句(直接在数据步骤中或使用proc数据集等)更改变量的格式 - 这有额外的好处,如果您在SAS中打开表,您将看到14位数而不是科学的格式化价值。

proc datasets library=work nolist;
    modify dsname;
        format acctnum 14.;
run;

文森特

答案 1 :(得分:2)

试试这个:

data WORK.T82APR ;       
set WORK.T82APR;
acctnum = put(F1, $20.);
rename f2 = tariff;
run;

好的,我没有注意你自己的重命名声明,所以我调整了我的答案以反映现在。