楼主: wayne0524
1245 5

[问答] 关于简单计算的问题 [推广有奖]

  • 25关注
  • 6粉丝

已卖:1370份资源

讲师

40%

还不是VIP/贵宾

-

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

楼主
wayne0524 发表于 2013-2-28 11:26:12 |AI写论文
10论坛币
data mo.kk1;                                                                                                                           
set mo.kk;                                                                                                                              
option missing=0;
loss=amt-pay;                                                                                                            
run;                                                   
程序如上 很简单,问题也很简单,amt(amt全是有具体数字的) 和pay(pay有的有数有的是0)都是从excel读入的数据字段数据  loss 是新产生字段,在对减后结果的清单中 loss 字段有的值计算准确了,但有的amt减了pay字段的0以后却直接变成了0,
请问为什么会出现以上状况?
如何解决??
求教

关键词:missing Option EXCEL loss exce 计算

沙发
hamsik11 发表于 2013-2-28 11:52:41
很可能是,pay为missing,所以loss=amt-pay也为missing,而设置为missing=0,所以loss为0。
加一句
if missing(loss) then loss=amt;

也许有更好的办法
已有 1 人评分热心指数 收起 理由
Imasasor + 3 热心帮助其他会员

总评分: 热心指数 + 3   查看全部评分

藤椅
wayne0524 发表于 2013-2-28 13:21:38
hamsik11 发表于 2013-2-28 11:52
很可能是,pay为missing,所以loss=amt-pay也为missing,而设置为missing=0,所以loss为0。
加一句
if mi ...
可是我前面有一句 option missing=0 ,
我这句不是把pay的所有的missing 转化成0 了么??

板凳
hamsik11 发表于 2013-2-28 13:26:17
wayne0524 发表于 2013-2-28 13:21
可是我前面有一句 option missing=0 ,
我这句不是把pay的所有的missing 转化成0 了么??
考虑一个执行次序的问题,sas在pdv里先生成结果,这个时候loss=amt-pay,如果pay为缺失,则loss也为缺失,然后option missing=0才发挥作用,这样loss就为0了。

报纸
wayne0524 发表于 2013-3-3 22:34:08
hamsik11 发表于 2013-2-28 13:26
考虑一个执行次序的问题,sas在pdv里先生成结果,这个时候loss=amt-pay,如果pay为缺失,则loss也为缺失, ...
请问 有办法解决这个问题么?

地板
hamsik11 发表于 2013-3-4 00:23:19
wayne0524 发表于 2013-3-3 22:34
请问 有办法解决这个问题么?
data mo.kk1;                                                                                                                           
set mo.kk;                                                                                                                              
option missing=0;
loss=amt-pay;  
if missing(loss) then loss=amt;                                                                                                           
run;        

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 12:49