【问题标题】:character to numeric in data step SAS数据步骤SAS中的字符到数字
【发布时间】:2018-03-18 11:27:09
【问题描述】:

我想在数据步中将一些变量转换为具有定义长度的 char 和一些具有一定长度的数字。 如何做到这一点?

提前致谢

对于角色来说,它工作正常。

   Data Clean_data
format
country $30.
Region $30.
Days_on_site (Numeric value)
AOD          (Numeric value)

set raw_data;
run;

【问题讨论】:

  • 显示您尝试过的代码以及您看到的任何日志消息。您知道“具有一定长度的数字”对 SAS 程序员意味着什么吗?它与某种宽度的数字格式不同吗?
  • 为什么要使用 FORMAT 语句?格式只是有关如何显示值的说明。您可以使用 LENGTH 或 ATTRIB 语句定义变量的存储方式。

标签: sas proc proc-sql


【解决方案1】:

正在运行的 DATA 步中的所有 SAS 数值都是 8 字节 IEEE 浮点数。请参阅Numerical Accuracy in SAS Software 用于在数据集中存储数字变量的字节数可以指定为 3(​​或 2)到 8 之间的任意值,具体取决于操作系统和硬件。当长度小于 8 时,将数据集的值移动到数据步中可能会发生舍入。

SAS 数值变量还可以具有关联格式,当必须呈现(或呈现)值以进行输出时使用该格式,通常是为了便于人类阅读。输出几乎可以是任何东西,Excel、PDF、RTF、ViewTable 查看器、Enterprise Guide 中的网格查看器、SAS Studio 中的网格查看器等。这个概念可能与您的问题“convert some变量转换成 char".

有many numeric formats。根据您的变量名称Days_on_site,我假设您想要格式化一个仅包含整数值的数字变量。数值可以被格式化以显示为最接近的整数使用

format Days_on_site 4.;

如果实际值 > 9999,则格式将在查看时将值显示为 ****。

常用的数字格式之一是w.d

来自文档:

w 指定输出字段的宽度
d 指定右边的位数 数值中的小数点。此参数是可选的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2021-11-02
    相关资源
    最近更新 更多