我在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)。
答案 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,如果你用它或类似的数学 - 你没有丢失任何信息,你只是没有正确显示它。