楼主: zs694461601
2974 13

[原创博文] sas分组计算的问题 [推广有奖]

  • 4关注
  • 11粉丝

已卖:2378份资源

副教授

70%

还不是VIP/贵宾

-

威望
0
论坛币
11884 个
通用积分
15.2258
学术水平
15 点
热心指数
23 点
信用等级
11 点
经验
86303 点
帖子
350
精华
0
在线时间
1359 小时
注册时间
2010-1-4
最后登录
2022-1-27

楼主
zs694461601 发表于 2012-3-16 10:41:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
以下是部分数据示例,大致格式是这样的:

Permno

group

weight1

weight2

return1

return2

return3

return4

10001

1

0.1

0.2

0.2

0.18

0.28

0.18

10002

1

0.3

0.4

0.11

0.21

0.22

0.12

10003

1

0.2

0.3

0.29

0.12

0.22

0.22

10004

1

0.4

0.1

0.17

0.02

0.09

0.231

10034

2

0.27

0.02

0.17

0.138

0.238

0.181

10045

2

0.26

0.18

0.28

0.241

0.23

0.123

10039

2

0.26

0.3

0.12

0.112

0.232

0.224

10029

2

0.16

0.2

0.12

0.012

0.049

0.234

10030

2

0.05

0.3

0.21

0.28

0.18

0.2

10020

3

0.35

0.34

0.01

0.22

0.12

0.1

10239

3

0.25

0.33

0.12

0.22

0.22

0.2

10298

3

0.4

0.33

0.13

0.1        

0.22

0.23



期望得到的结果:
根据group分的三组,weight1和weight2是权重,return1到return4是收益,分别计算每组的加权收益的和,即每组使用weight1可以得到四个加权收益的和,使用weight2也可得到四个加权收益的和。
按照以上的方法我需要每组输出8个值。该怎么编程呢?
谢谢。
二维码

扫码加我 拉你入群

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

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

关键词:RETURN Weight weigh Eight Group

回帖推荐

本帖被以下文库推荐

沙发
zs694461601 发表于 2012-3-16 10:56:38
求高手
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

藤椅
yugao1986 发表于 2012-3-16 11:56:27
不知道是否会错意,仅供参考:
proc iml;
   use a;
   read all var{ return1 return2 return3 return4} into return;
   read all var {weight1}  into weight1;
   read all var {weight2} into weight2;

   newreturn1=weight1 # return;
   newreturn2=weight2 # return;
   
   create newreturn1 var{r1w1, r2w1, r3w1, r4w1} ;
   append from newreturn1;
   create newreturn2 var{r1w2, r2w2, r3w2, r4w2} ;
   append from newreturn2;
  
quit;

data b;
   merge a newreturn1 newreturn2;
run;
三人行必有我师

板凳
baoaibaobao 发表于 2012-3-16 12:17:41
  1. data have;
  2. input Permno group  weight1 weight2  return1  return2   return3  return4;
  3. cards;
  4. 10001        1        0.1        0.2        0.2        0.18        0.28        0.18
  5. 10002        1        0.3        0.4        0.11        0.21        0.22        0.12
  6. 10003        1        0.2        0.3        0.29        0.12        0.22        0.22
  7. 10004        1        0.4        0.1        0.17        0.02        0.09        0.231
  8. 10034        2        0.27        0.02        0.17        0.138        0.238        0.181
  9. 10045        2        0.26        0.18        0.28        0.241        0.23        0.123
  10. 10039        2        0.26        0.3        0.12        0.112        0.232        0.224
  11. 10029        2        0.16        0.2        0.12        0.012        0.049        0.234
  12. 10030        2        0.05        0.3        0.21        0.28        0.18        0.2
  13. 10020        3        0.35        0.34        0.01        0.22        0.12        0.1
  14. 10239        3        0.25        0.33        0.12        0.22        0.22        0.2
  15. 10298        3        0.4        0.33        0.13        0.1 0.22        0.23
  16. ;
  17. %macro want;
  18. proc sql;
  19.      create table have1 as
  20.           select *,1/count(group) as weight3
  21.           from have group by group;
  22.      create table want as
  23.           select distinct group
  24.                %do i=1 %to 3;
  25.                     %do ii=1 %to 4;
  26.                          ,sum(weight&i*return&ii) as w&i.r&ii. format=6.4
  27.                    %end;
  28.                %end;
  29.           from have1 group by group;
  30. quit;
  31. %mend;
  32. %want;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

报纸
zs694461601 发表于 2012-3-16 20:00:29
baoaibaobao 发表于 2012-3-16 12:17
能不能编个data 步?谢谢了
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

地板
jtfly8 发表于 2012-3-18 18:40:17
楼上有写data步的哇@@

7
gaotao0727 发表于 2012-3-19 16:41:56
学习学习~~
衣带渐宽终不悔,为伊消得人憔悴~~

8
紫血丹心 在职认证  发表于 2012-3-19 18:37:56 来自手机
先对变量by一下,再用first与last
拼搏

9
denver 发表于 2012-3-19 23:59:37
  1. data have;
  2. input Permno group  weight1 weight2  return1  return2   return3  return4;
  3. cards;
  4. 10001        1        0.1        0.2        0.2        0.18        0.28        0.18
  5. 10002        1        0.3        0.4        0.11        0.21        0.22        0.12
  6. 10003        1        0.2        0.3        0.29        0.12        0.22        0.22
  7. 10004        1        0.4        0.1        0.17        0.02        0.09        0.231
  8. 10034        2        0.27        0.02        0.17        0.138        0.238        0.181
  9. 10045        2        0.26        0.18        0.28        0.241        0.23        0.123
  10. 10039        2        0.26        0.3        0.12        0.112        0.232        0.224
  11. 10029        2        0.16        0.2        0.12        0.012        0.049        0.234
  12. 10030        2        0.05        0.3        0.21        0.28        0.18        0.2
  13. 10020        3        0.35        0.34        0.01        0.22        0.12        0.1
  14. 10239        3        0.25        0.33        0.12        0.22        0.22        0.2
  15. 10298        3        0.4        0.33        0.13        0.1 0.22        0.23
  16. ;
  17. run;

  18. proc sort data=have out=have1; by group permno; run;

  19. data have1;
  20.         set have1;
  21.         by group;
  22.         ret11=weight1*return1;
  23.         ret12=weight1*return2;
  24.         ret13=weight1*return3;
  25.         ret14=weight1*return4;
  26.         ret21=weight2*return1;
  27.         ret22=weight2*return2;
  28.         ret23=weight2*return3;
  29.         ret24=weight2*return4;
  30. run;

  31. proc means data=have1;
  32.         by group;
  33.         var ret11        ret12        ret13        ret14        ret21        ret22        ret23        ret24;
  34.         output out=result sum=;
  35. run;
复制代码


Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

10
denver 发表于 2012-3-20 00:00:49
baoaibaobao 发表于 2012-3-16 12:17
请问,你这种能够显示行号和方便复制代码的回帖方法是怎么弄的呢?谢谢
Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

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

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