搜故事,从300万个故事到海量知识百科的华丽转变!

SAS应用:都是小数点惹的祸

时间:2020-06-15

相关推荐

今天有用了两种方法通过分组求平均数问题,发现结果不一样。为了说明问题,我自己简单地造了些数据,如下:

data dup;input id datefield value ;cards;1 2 0.0001101 2 0.0001101 2 0.00001101 20.00001000001 101 3 0.00001101 3 0.00001101 3 0.00003101 3 0.00003101 3 0.0000310;run;proc sql;

create table NoDup1 asselect unique id, date, field, avgvalue as value from Dup groupby id, date, field;quit;;*method 2;proc means data = Dup nway ;class id date field;var value;output out = NoDup2drop = type freq mean = value;run;初一看来,好像代码没什么问题,应该结果一致,然而结果运行后,用sql得到的结果与proc步不一样,这是为什么?似乎这是SAS的错误,哈哈这个多么伟大的一个发现啊!SAS可以说是总多行业里面的标准,竟然也会错。其实这不是第一次发现这类问题。以前也遇到过同样的一个问题,就是:

data ex;do i= 0.05 to 0.15 by 0.01;if i=0.1 then output;end;run;

这个代码运行后,ex数据集是空的,是不是SAS出错了。后来发现这是由于计算机存储小数的浮点问题,循环5次后,i应该等于0.1,实际上非常接近0.1,是个近似值,并不是等于0.1,因此并无数据输出到ex里面。

那么回到上面的那个问题,根本原因是proc sql和proc mean步对数的小数点处理不同,procmean考虑到小数点多于sql,因此会导致nodup1比nodup2少一条观察。下面我提供第三种解决此类问题的代码,data步,也是商业大型数据的常用方法:

data nodup3;set dup;by id date field;if first.field then do;num=0;mean=0;end;num+1; mean+value;if last.field then do; value=mean/num; drop nummean; output; end;run;

这个也是和proc mean步结果是一样的。

有时候也许不需要考虑没必要的小数位,可以用函数round,int,ceil等,还有一种方法就是把需要分组和比较大小的非整数用format格式化一下。想要了解更多关于数据分析师方面的内容,请点

一般来说,我如果发现SAS运行结果和我想的不一样,可以归结于两点:1,自己的代码有问题;2,小数点问题。

看到此处说明本文对你还是有帮助的,关于“SAS应用:都是小数点惹的祸”留言是大家的经验之谈相信也会对你有益,推荐继续阅读下面的相关内容,与本文相关度极高!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
四年级数学日记350字:都是小数点惹的祸

四年级数学日记350字:都是小数点惹的祸

小数点,老张,小王,日记,电表,数学,小数,文档,惹的祸,小王家,无忧,事情,妈妈,单位,倒底,全文,家属,小瞧,文章,资源,电工,时候,电脑,老李,院里,邻居们,为大家,不可缺少,了一下,交电费

2020-06-15 #故事大全

300字数学小论文:都是小数点惹的祸

300字数学小论文:都是小数点惹的祸

小数点,老张,小王,电表,小数,惹的祸,小王家,字数,事情,妈妈,单位,倒底,家属,小瞧,故事,电工,时候,老李,院里,邻居们,不可缺少,了一下,交电费,仔细看,出问题,吃惊地,小论文,就不是,怎么用,很不好意思

2020-06-15 #小故事

四年级数学日记范文:都是小数点惹的祸350字

四年级数学日记范文:都是小数点惹的祸350字

小数点,老张,小王,电表,数学,小数,文档,日记,范文,惹的祸,小王家,无忧,事情,妈妈,单位,倒底,全文,家属,小瞧,文章,电工,时候,电脑,老李,院里,邻居们,为大家,不可缺少,了一下,交电费

2020-06-15 #经典故事

300字数学小论文:都是小数点惹的祸

300字数学小论文:都是小数点惹的祸

小数点,老张,小王,电表,小数,小王家,事情,妈妈,单位,倒底,家属,小瞧,电工,时候,老李,院里,邻居们,不可缺少,了一下,交电费,仔细看,出问题,吃惊地,就不是,这里有,真实故事,怎么用,很不好意思,想不明白,惹的祸

2020-06-15 #经典故事