Text 如何在SAS中将文本转换为数字格式

Text 如何在SAS中将文本转换为数字格式,text,sas,numeric,Text,Sas,Numeric,我有一个来自数据仓库的大数据集,其中一个变量被作为字符串读入。变量只包含数字,我没有原始数据,所以我自己无法读取数据 例如: Variabel 4659721685425645 1234564578978896 7894567894567894 格式是20美元。而告密者是19美元 我想将其转换为数值,这样我就可以将数据集与另一个数据集连接在同一个变量上,但是这个变量是数值的 我已经试过: data x_numeric; set x; format variab

我有一个来自数据仓库的大数据集,其中一个变量被作为字符串读入。变量只包含数字,我没有原始数据,所以我自己无法读取数据

例如:

Variabel
4659721685425645
1234564578978896
7894567894567894
格式是20美元。而告密者是19美元

我想将其转换为数值,这样我就可以将数据集与另一个数据集连接在同一个变量上,但是这个变量是数值的

我已经试过:

 data x_numeric;
        set x;
        format variable 20.;
 run;
谢谢你的帮助

一个20位数字不能以全精度数字存储在SAS中。SAS使用双精度浮点数,这意味着它们将数字存储在8字节中。52位用于尾数(精度),11位用于指数,1位用于符号
2^53
是SAS中可以精确存储的最大数字,约为9x10^15(任意15位数字,大多数数字为16位)。在符合IEEE标准的系统上(基于Intel的系统,如Unix、Windows等)也是如此;IBM大型机使用56位作为尾数,因此最多可以精确存储2^57位

有关更多详细信息,请参阅

如果您的数字可以安全地用数字表示(即小于9E16),则可以使用
输入
对其进行转换

var_n = input(var_c, 20.);
其中,
20.
是读取它的信息(宽度应与字符变量的
格式
相同,而不是其信息)。您不必在数据集中永久地执行此操作;如果您使用的是
sqljoin
,您可以在tbl1.var=input(tbl2.var,20.)上使用
或类似的方法进行连接(尽管在数据步骤合并中您不能这样做)