全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1301 5
2013-09-24
悬赏 20 个论坛币 已解决
大神们好,小弟跑程序的时候以前就有遇到过类似的问题,一直也没解决,这次发帖请教。
在两个字段进行对减时,明明都已经定义了数值型的字段,可是计算过后,有的在被减项为0的时候,减完了结果直接变0,也就是说,有部分观测条数原本应该  A-0=A 的结果的 但是最后程序跑完减了以后,变成了A-0=0 的结果.
我也找不到原因,求大神帮忙看看,
程序如下:
data mo.join_cal_2;                                                                                                                                                                                                                                             
set mo.join_cal_1;                                                                                                                                                                                                                                             
option missing=0;                                                                                                                                                                                                                                               
format Net_UPR201308 best14.;                                                                                                                                                                                                                                               
informat Net_UPR201308 best14.;                                                                                                                                                                                                                                             
format C_UPR_XOL best14.;                                                                                                                                                                                                                                               
informat C_UPR_XOL best14.;                                                                                                                                                                                                                                             
format Gross_UPR201308 best14.;                                                                                                                                                                                                                                               
informat Gross_UPR201308 best14.;                                                                                                                                                                                                                                             
                                                                                                                                                                                                        
C_UPR_XOL=Now_C_UPR/1+OW_XOL_UPR201308/1  ;                                                                                                                                                                                                                     
Net_UPR201308=Gross_UPR201308- C_UPR_XOL;                                                                                                                                                                                                                        
run;

结果部分截图:

Gross_UPR201308

Net_UPR201308

C_UPR_XOL

933199

107131.97

826067.03

1077207.99

55507.73

1021700.26

1534752.55

152274.42

1382478.13

2327912.34

212416.54

2115495.8

5902823.6

541413.84

5361409.76

12378632.91

1004795.01

11373837.9

58572.3

-76329.67

134901.97

17806.56

-86801.25

104607.81

21021.81

-20998.67

42020.48

59706.41

-15119.12

74825.53

44420.04

-18359.86

62779.9

277386.33

-9678.72

287065.05

57905.17

0

0

90918.36

0

0

34658.4

0

0

35207.13

0

0

17623.09

0

0

22165.06

0

0

8600.06

0

0

120083.14

0

0

6362.67

0

0

40414.64

0

0

36445.19

0

0

168736.55

0

0

41448.27

8205.74

33242.53

61364.96

5684.92

55680.04

3642.68

418.55

3224.13

541327.75

334992.89

206334.86



求大神指教!



































最佳答案

oneoneagain 查看完整内容

把代码改成这样试一下:Net_UPR201308=sum(Gross_UPR201308,- C_UPR_XOL);
二维码

扫码加我 拉你入群

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

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

全部回复
2013-9-24 14:15:57
把代码改成这样试一下:Net_UPR201308=sum(Gross_UPR201308,- C_UPR_XOL);   
二维码

扫码加我 拉你入群

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

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

2013-9-24 15:21:58
问题应该在于option missing=0;    你可以去掉这一行试一下     
二维码

扫码加我 拉你入群

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

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

2013-9-24 16:57:15
missing=0后,那些缺失值,看上去是0,但实际上还是缺失值,你再用减法运算的时候得到的是缺失值,然后看上去是0。
二维码

扫码加我 拉你入群

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

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

2013-9-24 17:28:31
支持楼主!!!嘿嘿
二维码

扫码加我 拉你入群

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

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

2013-9-24 21:59:34
oneoneagain 发表于 2013-9-24 18:44
把代码改成这样试一下:Net_UPR201308=sum(Gross_UPR201308,- C_UPR_XOL);
群里 果然高手如云!哥们你太有才了!
其实C_UPR_XOL 里是拼接出来的,虽然我定义字段为数值,但是里面有的由于拼接的原因还是为空,不知道为撒还是被SAS默认为了字符,所以当数值减字符时,无效,仍然为空。
大神的一下转换太巧妙了!分数给你!!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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