楼主: benny10
1295 1

群组中第n笔的运算? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
114 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
2230 点
帖子
99
精华
0
在线时间
67 小时
注册时间
2007-6-23
最后登录
2020-3-25

楼主
benny10 发表于 2010-10-10 00:42:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问各位前辈,在sas中要如何完成群组中的运算呢?
如我想从各群组中的最后一笔p中来算出其报酬率,gruop2return(22-20)/20=0.1group3则为(23-22)/22,其代码应该要怎么写才会正确呢,请各位前辈帮帮我吧,谢谢!(主要就是想知道return)
:
group  time  p return
1 900 19
1 901 21
1 902 22
1 903 20
2 906 20 0.1
2 908 21 0.1
2 909 22 0.1
3 911 23 0.045455
3 913 23 0.045455
二维码

扫码加我 拉你入群

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

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

关键词:RETURN Group turn time 帮帮我吧 运算

沙发
hopewell 发表于 2010-10-10 09:16:30
  1. data raw(index=(group));
  2.     infile datalines truncover;
  3.     input group time p fiducial_return;
  4. datalines;
  5. 1 900 19
  6. 1 901 21
  7. 1 902 22
  8. 1 903 20
  9. 2 906 20 0.1
  10. 2 908 21 0.1
  11. 2 909 22 0.1
  12. 3 911 23 0.045455
  13. 3 913 23 0.045455
  14. ;
  15. data out(drop=lag_p);
  16.     do _n_=1 by 1 until(last.group);
  17.         set raw;
  18.         by group;
  19.     end;
  20.     lag_p=lag(p);
  21.     if group gt 1 then return=(p-lag_p)/lag_p;
  22. run;
复制代码

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

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