楼主: twsForever
5037 5

【请教】请问大家s+x 和s=s+x有什么区别呢? [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
57 点
帖子
10
精华
0
在线时间
6 小时
注册时间
2012-10-5
最后登录
2016-6-3

楼主
twsForever 发表于 2013-3-31 12:01:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
代码如下:
data a;
z=0;
input x @@;
retain y 8;
s+x;
y=y+x;
z=z+x;
cards;
2 23 34 45 12 23 12 29 35
;



想问下大家,s+x这条和z=z+x对于s和z是否设定了初始值有什么影响吗?
这两条语句很糊涂,多谢大家!

二维码

扫码加我 拉你入群

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

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

关键词:RETAIN Input cards card Data 影响

沙发
lightwinner 发表于 2013-3-31 12:53:03
s+x相当于s=s+x
s+x和z=z+x语句对设定初始值是有影响的,如果没有初始值,s和y都会在上一次的结果上再加x值,
如果设定初始值,那么每次都会在x的基础上加初始值。
已有 1 人评分经验 论坛币 收起 理由
webgu + 10 + 10 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10   查看全部评分

低头做事,抬头看路

藤椅
pobel 在职认证  发表于 2013-3-31 21:46:25
“s+x; ”这句 就相当于"retain s;   s=s+x;". 也就是说这样会自动retain变量s。

而“s=s+x;”这句如果没有相应retain语句,则变量s在每次DATA-loop开始时会被设为缺失。

例子中假如没有‘z=0;’这句, 那z的值将都是missing的。
已有 1 人评分经验 论坛币 收起 理由
webgu + 10 + 10 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10   查看全部评分

和谐拯救危机

板凳
bobguy 发表于 2013-4-1 01:28:44
s+x   <----> retain s 0; s=s+x;
已有 1 人评分经验 论坛币 收起 理由
webgu + 10 + 10 为0加分,呵呵。

总评分: 经验 + 10  论坛币 + 10   查看全部评分

报纸
zkymath 在职认证  发表于 2013-4-1 11:02:09
s+y是累加语句(将y的值逐次累加到 s 上),并且s 的初始值缺省为0(只能是0,和retain语句可以指定初始值不同);同时提示SAS在data步中,每次循环不清空 s 的取值(保持,从而实现累加;s=s+y无特殊说明每次都会被清空)。

地板
twsForever 发表于 2013-4-7 22:10:00
也就是说s=s+y,=号后面的s每次在计算之前都被清空为0么?

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

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