input - 将数字转换为字符 20

标签 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;

最佳答案

虽然这个线程已经死了,但我想我应该介入并回答为什么 14 位数字转换变成 E 表示法。

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

在这种情况下,输入函数接收格式化值 put(acctnum, BEST12.)。有两种方法可以解决这个问题。

要么使用

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

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

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

文森特

关于input - 将数字转换为字符 20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992151/

相关文章:

c - 从两列读入变量

iphone - 如何在iPhone中输入日期格式

input - J 的命令行输入

java - HTTPURLConnection - 内容完整性

shell - 使用一个命令或一次将多个数据放入HBase

使用 Scanner 从标准读取 Java 给出错误结果

sas - SAS:如何仅输出显示数据集中变量的PROC CONTENTS部分?

sas - 不一致的宏变量数据类型

python - 如何通过python脚本设置SAS程序宏变量

json - Spring 3.2 中 AJAX 的 PUT 方法不起作用