楼主: scarfacetony
1042 3

求解这两个代码生成不同结果的原因 [推广有奖]

  • 2关注
  • 2粉丝

已卖:182份资源

讲师

83%

还不是VIP/贵宾

-

TA的文库  其他...

从零开始

数据分析书籍资料

他山之石

威望
0
论坛币
3204 个
通用积分
10.4430
学术水平
12 点
热心指数
13 点
信用等级
13 点
经验
35345 点
帖子
254
精华
0
在线时间
829 小时
注册时间
2012-2-16
最后登录
2020-2-26

楼主
scarfacetony 发表于 2012-11-20 17:09:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求高手解读一下这两个代码

data revenue2;
input Day : $3.
Revenue : dollar6.;
Total + Revenue;
format Revenue Total dollar8.;
datalines;
Mon $1,000
Tue $1,500
Wed .
Thu $2,000
Fri $3,000
;
run;

data revenue1;
retain Total 0;
input Day : $3.
Revenue : dollar6.;
Total = Total + Revenue; /* Note: this does not work */
format Revenue Total dollar8.;
datalines;
Mon $1,000
Tue $1,500
Wed .
Thu $2,000
Fri $3,000
;
run;

两个跑出来的TOTAL值不一样

二维码

扫码加我 拉你入群

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

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

关键词:Revenue Dollar format RETAIN Venue

看了这个视频,我于是有了进股市的信心!
https://bbs.pinggu.org/thread-2787427-1-1.html

沙发
pobel 在职认证  发表于 2012-11-20 17:32:55
"data revenue2"中的“Total + Revenue;” 相当于:
  retain total;
   total=sum(total,revenue);

所以,这两个DATA步的区别就是SUM()函数和a+b两种求和方式在遇到缺失值时的区别。
SUM(): Returns the sum of the nonmissing arguments.,只有当所有的参数都缺失时结果才为缺失值。
而a+b: 只要a或者b中有一个是缺失的,结果就是缺失的。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
scarfacetony + 1 + 1 + 1 多谢解答

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

和谐拯救危机

藤椅
老师她摸我 发表于 2012-11-20 17:36:44
差别在于赋值语句(Total = Total + Revenue;)碰到缺失值时,结果为缺失值,而Sum语句(Total + Revenue;)将缺失值当成0来处理!
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
scarfacetony + 1 + 1 + 1 多谢解答

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

欢迎加入SAS群:144839730-蜗牛

板凳
scarfacetony 发表于 2012-11-20 18:51:00
看书不仔细,书上有这个解释

variable + increment;

.. Variable is retained
.. Variable is initialized at 0
.. Missing values (of increment) are ignored

________________
多谢楼上两位解答
看了这个视频,我于是有了进股市的信心!
https://bbs.pinggu.org/thread-2787427-1-1.html

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

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