您好我正在构建数据集,但我合并的数据格式不同。
从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;
答案 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;
好的,我没有注意你自己的重命名声明,所以我调整了我的答案以反映现在。