SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1640|回复: 3
打印 上一主题 下一主题

求助!关于retain语句!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-3-12 15:22:40 | 只看该作者

求助!关于retain语句!

<!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o --> 小弟是初学者,有如下问题请教:
<!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o --> 我想实现分组累计求和,写了如下语句:
data r2;
set r1;
by tag;
if first.tag then do;
retain tturn 0;
end;
tturn+turn;
run;

但在执行时retain语句总是保留了之前的值,而并没有置初值0,

请问我该如何实现?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-3-12 20:25:32 | 只看该作者

Re: 求助!关于retain语句!

[quote=&quot;hero&quot;:21da0]:o 小弟是初学者,有如下问题请教:
<!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o --> 我想实现分组累计求和,写了如下语句:
data r2;
set r1;
by tag;
if first.tag then do;
retain tturn 0;
end;
tturn+turn;
run;

但在执行时retain语句总是保留了之前的值,而并没有置初值0,

请问我该如何实现?[/quote:21da0]
It's important to know that retain statement is non-executed statement and  the following code may solve your problem.
proc sort data=r1;
by tag;
run;
data r2
retain tturn;
set r1;
by tag;
if first.tag then tturn=0;
tturn+turn;
if last.tag then output;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2004-3-12 22:46:02 | 只看该作者
Please be noted that you should add a BY TAG after PROC SORT.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2004-3-13 11:14:57 | 只看该作者

谢谢!

谢谢楼上的两位大哥! <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->  <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-1-8 15:27 , Processed in 0.109688 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表