楼主: november
1175 4

[问答] 请教一个SAS程序求和的问题 [推广有奖]

  • 2关注
  • 1粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
1422 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
1 点
经验
2231 点
帖子
111
精华
0
在线时间
86 小时
注册时间
2005-6-17
最后登录
2021-12-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有这样一个数据集,变量为PnL:

Data Test;
input PnL @@;
cards;
64 -81 -91 6 -11 2 58 -93 -92 27 -123 -110 41 26 75 -37
;
run;

我想把这个PnL进行累加生成新的数据集,规则是
  • 按照观测的顺序从上到下依次累加
  • 正负号相同的相加在一起生成一个新的观测

生成的数据集应该是这样的:请问应该怎么写?感谢!!
64
-172(=-81-91)
6
-11
60(=2+58)
-185(=-92-92)
27
-233(=-123-110)
142(=41+26+75)
-37
二维码

扫码加我 拉你入群

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

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

关键词:sas程序 cards Input card Data 程序

回帖推荐

zhengbo8 发表于2楼  查看完整内容

求币啦{:2_31:}
沙发
zhengbo8 发表于 2015-10-23 22:28:51 |只看作者 |坛友微信交流群
求币啦{:2_31:}
  1. data test;
  2.         input PnL @@;
  3. datalines;
  4. 64 -81 -91 6 -11 2 58 -93 -92 27 -123 -110 41 26 75 -37
  5. ;
  6. run;

  7. data result;
  8.         set test;
  9.         retain temp grp;
  10.         sign=sign(PnL);
  11.         if _n_=1 then do;
  12.                 grp=1;
  13.                 temp=sign;
  14.         end;
  15.         else do;
  16.                 temp=lag(sign);
  17.                 if sign^=temp then do;
  18.                         grp=grp+1;
  19.                 end;
  20.         end;
  21. run;

  22. proc sql noprint;
  23.         create table final as
  24.         select sum(PnL) as PnL from result group by grp;
  25. quit;
复制代码
已有 3 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 5 热心帮助其他会员
iamzjk + 5 + 1 + 1 精彩帖子
november + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 30  学术水平 + 4  热心指数 + 7  信用等级 + 1   查看全部评分

使用道具

藤椅
november 发表于 2015-10-24 16:22:57 |只看作者 |坛友微信交流群
zhengbo8 发表于 2015-10-23 22:28
求币啦
实测管用,谢谢啦!
话说怎么给币?

使用道具

板凳
johnpark1 发表于 2015-10-24 22:25:52 来自手机 |只看作者 |坛友微信交流群
Try this:

Data x;
Set x;
Retain cumx;
If _n_ = 1 then cumx =0;
If x*lag (x) <0 then cumx = 0;
Cumx = cumx + x;
Run;

使用道具

报纸
november 发表于 2015-10-25 10:18:25 |只看作者 |坛友微信交流群
johnpark1 发表于 2015-10-24 22:25
Try this:

Data x;
感谢!这样很简洁 但是没有把中间的求和项去掉

使用道具

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

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

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

GMT+8, 2024-4-28 05:55