sas - sas中的长数字读取

标签 sas

我的 ID 号很长(例如 12184447992012111111)。通过使用 proc import from csv 文件,该数字会在数字之间添加“E”来缩短自身(1.2184448E19,格式为 best12. 和信息为 best32.)。浏览这里我知道csv格式本身之前缩短了它,所以它与SAS无关。所以我尝试复制大约 5 个数字并使用 datalines 语句,然后结果也相同......如果有人可以建议我需要使用哪种格式,那将会很有帮助。使用best32。格式我没有得到原始号码,因为很可能它修改了更改后的号码,这实际上给了我 12184447992012111872 这不是我想要的号码。

最佳答案

因为您的 ID 变量实际上是一个标识符而不是“真实”数字,所以您需要将其作为字符串读取。作为示例显示的值太大,无法表示为整数,因此由于 SAS 将所有数字存储为 float ,因此您会失去“精度”。

既然您提到使用PROC IMPORT,请复制它生成的SAS程序并更改“21”中的FORMAT和INFORMAT规范。和“best32”。到“32 美元”。 (或任何与您的数据匹配的值。

当然最好的是您可以通过 SAS 访问 PC 文件格式,在这种情况下,您可以在 Excel 中将列格式设置为“文本”,并让 SAS 直接读取它。

关于sas - sas中的长数字读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10933725/

相关文章:

hadoop - 如何让 Hadoop 接受带有复合 WHERE 子句的 SAS 直通查询?

ms-access - 使用 SAS 触发 MS Access 功能

excel - 错误: The Excel engine cannot be found

sas - 在 SAS 中获取站点名称

sas - 在 Stata 中进行加权热卡插补的简单方法?

sas - 转置逗号分隔字段

sas - %let %put 变量 - 它对你的 sas 程序做了什么

sas - 如何在SAS中删除数据集中的空白观测值

mysql - 如何在SAS中自动添加id

date - 如何定义给定日期的日期格式