将字符串转换为大小数字sas的数字

时间:2017-02-01 17:08:16

标签: string sas numbers

我在sas有问题。我有一个数据集,其中数字存储为字符串。问题是数字的大小和格式变化很大。我举一个例子:

or

输出:

 data s;
   x='123456789012345';
   y=input(x,best32.);
   z = '0.0001246564';
   a = input(z,best32.);
   put 'a='y;
   put a;
   keep y a;
run;

正如您所看到的,我丢失了大整数中的信息。如何制作我的程序以免丢失信息。据我所知,这个数字少于15位sas large number。我真的很想念python,我可以设置y = float(x)。

1 个答案:

答案 0 :(得分:2)

没有发生任何信息丢失。您只是将informat误认为format

信息best32.告诉SAS导入宽度为32的字符串。一切都很好,你在号码中存储了所有15个字符。

现在,如果您想要查看全部15个字符,则需要使用宽于默认best12.格式的格式在输出中查看它:

 data s;
   x='123456789012345';
   y=input(x,best32.);
   z = '0.0001246564';
   a = input(z,best32.);
   put y= best32.;
   put a= best32.;
   keep y a;
run;

但是,即使你没有这样显示,数字y仍然完全等于123456789012345,如果你用它或类似的数学 - 你没有丢失任何信息,你只是没有正确显示它。