将数字转换为字符 20
您好,我正在构建一个数据集,但我要合并的数据具有不同的格式。
从Excel工作表中,我将其导入数字8,而其他2个数据集我合并为字符20,所以我想将数字8更改为字符20。
如何将变量acctnum更改为字符20? (我也想保留这个名称,因为我假设将创建一个新变量)
data WORK.T82APR;
set WORK.T82APR;
rename F1 = acctnum f2 = tariff;
run;
proc contents data=T82APR;
run;
Hi I am building a dataset, but the data I am merging is in different formats.
From the Excel sheet i import its in numeric 8, and the other 2 datasets im merging to are character 20, so I want to change the numeric 8 to char 20.
How can I change the variable acctnum, to char 20? (I also want to keep this as its name, as I presume a new variable will be created)
data WORK.T82APR;
set WORK.T82APR;
rename F1 = acctnum f2 = tariff;
run;
proc contents data=T82APR;
run;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
虽然这个线程已经死了,但我想我应该介入并回答为什么 14 位数字转换变成了 E 表示法。
通常,或者更确切地说,除非另有说明,SAS 中的数字格式使用 BEST12 格式。因此,当数值超过 12 个字符(包括任何逗号和句点)时,BEST12 选择 E 表示法作为格式化该值的最佳方式。
在这种情况下,输入函数接收格式化值 put(acctnum, BEST12.)。有两种方法可以解决这个问题。
或者,使用
格式语句更改变量的格式(直接在数据步骤中或使用类似的 proc 数据集) - 这具有额外的好处,如果您在 SAS 中打开表,您将看到 14 位数字,而不是科学格式化的值。
文森特
While this thread is already dead, I thought I'd way in and answer why the 14 digits conversion became in E notation.
Typically, or rather, unless otherwise specified, numeric formats in SAS use BEST12 format. As such, when a numeric value is longer than 12 characters (including any commas and periods), BEST12 chooses E notation as the best way to format the value.
The input function, in that case receives the formatted value put(acctnum, BEST12.). There would've been 2 ways around it.
Either use
Or, change the format of the variable using the format statement (directly in a data step or with proc datasets like) - this has the added benefit that if you open the table in SAS, you will see the 14 digits and not the scientific formatted value.
Vincent
试试这个:
好吧,我没有注意你自己的重命名语句,所以我调整了我的答案以反映这一点。
Try this:
Ok, I didn't pay attention to your own rename statement, so I adjusted my answer to reflect that now.