我的 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/