全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1066 9
2015-04-02
悬赏 10 个论坛币 已解决
QQ截图20140402234727.jpg 首先是有股票2302118 个关于前收盘价,今收盘价和涨跌的数据。
目的在于找出今收盘价减去前收盘价不等于涨跌的股票数据(即找出除息除权的股票)


我写的程序为:


data new;                                                                                                                              
set stock;                                                                                                                              
if CHG^=TCLOSE-LCLOSE then output new;                                                                                                   
run;   

运行后结果为
NOTE: 从数据集 WORK.STOCK. 读取了 2302118 个观测
NOTE: 数据集 WORK.NEW 有 2192439 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          1.01 秒
      CPU 时间          0.95 秒

QQ截图20140402235300.jpg

明显可以看出表中今收盘价减前收盘价是等于涨跌的,并没有得到想要的结果,请大神们赐教~~~~~









最佳答案

jl60156 查看完整内容

it is due to precision. data new; set stock; if abs(CHG-(TCLOSE-LCLOSE)) gt 0.0000001 then output new; ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-4-2 23:55:02
it is due to precision.

data new;                                                                                                                              
set stock;                                                                                                                              
if abs(CHG-(TCLOSE-LCLOSE)) gt 0.0000001 then output new;                                                                                                   
run;  
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-3 07:49:39
jl60156 发表于 2015-4-3 01:19
it is due to precision.

data new;                                                                 ...
不大懂,tclose和lclose都只有两位小数,相减也只有两位小数,怎么会和精度有关呢,求详解~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-4 10:18:31
jl60156 发表于 2015-4-3 01:19
it is due to precision.

data new;                                                                 ...
大神你在不在啊,求指导啊~~~~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-5 00:27:03
fanzai1hao 发表于 2015-4-3 07:49
不大懂,tclose和lclose都只有两位小数,相减也只有两位小数,怎么会和精度有关呢,求详解~~~
你以为只有两位精度,但其实里面是个高精度的(8字节)浮点数。可以自己减一下二者,看看结果是不是等于0
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-5 00:36:00
teqel 发表于 2015-4-5 00:27
你以为只有两位精度,但其实里面是个高精度的(8字节)浮点数。可以自己减一下二者,看看结果是不是等于0
还真不等于0,可问题出在哪儿呢?数据的原始输入问题?还是sas系统自己运算的问题?那岂不用sas等特别小心,每次要用abs函数或round函数来处理?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群