楼主: wangxiuyu1993
923 5

初学SAS,有问题求教 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

3%

还不是VIP/贵宾

-

威望
0
论坛币
1006 个
通用积分
12.9401
学术水平
3 点
热心指数
3 点
信用等级
1 点
经验
2682 点
帖子
88
精华
0
在线时间
132 小时
注册时间
2012-9-10
最后登录
2024-4-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
朱世武老师《金融计算与建模》中,有一段求几何平均收益的代码:data a6;
retain begin end;
set a5 end=lastobs;
if _n_=1 then begin=clpr; /* 将数据集第一个观测值的价格赋给变量begin */
if lastobs then do;
end=clpr; /* 将数据集最后一个观测值的价格赋给变量end */
output;
end;
代码的整体意思我懂,但是不明白retain begin end;是啥意思...


二维码

扫码加我 拉你入群

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

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

关键词:初学sas 问题求教 金融计算与建模 RETAIN output 收益

沙发
wangxiuyu1993 发表于 2014-3-30 19:51:16 |只看作者 |坛友微信交流群
额...自己顶一下....

使用道具

藤椅
mosquitog 发表于 2014-3-30 22:30:06 |只看作者 |坛友微信交流群
data步是循环对每一条观测进行处理,每一次循环开始时都要对pdv进行初始化,所有你在上次循环时赋的变量值都会被重设为缺省值。若你希望某个变量的值在data步循环中一直保持下去直至被重新赋值,而不是被初始化为缺省值,就要用retain语句。(p.s. 用set加载的数据集中的变量是自动设为retain的)

具体到你这个例子,如果开始不用retain,那么最后输出的观测中,end变量没有问题,其取值是最后一个观测值的价格,但begin变量的值会是缺省值。

使用道具

板凳
shenliang_111 发表于 2014-3-30 22:42:56 |只看作者 |坛友微信交流群
可以去看下SAS的PDV机制,这非常重要!!retain是对这种机制的一种纠正~祝好

使用道具

报纸
mosquitog 发表于 2014-3-30 22:45:22 |只看作者 |坛友微信交流群
lz可以参考这个 讲的比较详细
https://bbs.pinggu.org/thread-2337851-1-1.html

使用道具

地板
wangxiuyu1993 发表于 2014-3-31 19:51:31 |只看作者 |坛友微信交流群
mosquitog 发表于 2014-3-30 22:45
lz可以参考这个 讲的比较详细
https://bbs.pinggu.org/thread-2337851-1-1.html
谢谢哈~~~我看看~~~

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 19:16