楼主: wayne0524
1330 5

[问答] 高手进!关于两个数值型字段对减为0的问题。 [推广有奖]

  • 25关注
  • 6粉丝

已卖:1370份资源

讲师

40%

还不是VIP/贵宾

-

威望
0
论坛币
4534 个
通用积分
8.4306
学术水平
30 点
热心指数
44 点
信用等级
30 点
经验
8310 点
帖子
367
精华
0
在线时间
488 小时
注册时间
2007-2-3
最后登录
2022-11-2

楼主
wayne0524 发表于 2013-9-24 14:15:56 |AI写论文
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);
关键词:数值型 informat informa missing format 程序

沙发
oneoneagain 发表于 2013-9-24 14:15:57
把代码改成这样试一下:Net_UPR201308=sum(Gross_UPR201308,- C_UPR_XOL);   

藤椅
pobel 在职认证  发表于 2013-9-24 15:21:58
问题应该在于option missing=0;    你可以去掉这一行试一下     
和谐拯救危机

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

报纸
是风啊 发表于 2013-9-24 17:28:31
支持楼主!!!嘿嘿

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 14:28