楼主: forwings
1377 2

求助!如何求所有对象多次观测值之和 [推广有奖]

  • 0关注
  • 0粉丝

高中生

52%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
852 点
帖子
30
精华
0
在线时间
18 小时
注册时间
2016-3-15
最后登录
2018-9-20

楼主
forwings 发表于 2016-3-21 16:15:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

data sum;

input id v c;

cards;

01 1 1

01 2 2

01 3 3

02 1 2

02 2 2

02 3 3

02 4 4

03 1 1

03 2 2

03 3 3

04 1 1

04 2 2

;

run;


我想求出来每个人所有V(visit)的C的和

id v c total

01 1 1 1

01 2 2 3

01 3 3 6

02 1 2 2

02 2 2 4

02 3 3 7

02 4 4 11

03 1 1 1

03 2 2 3

03 3 3 9

04 1 1 1

04 2 2 3

我的程序是


data add;

set sum;

by id v;

retain tot 0;

do until (last.v);

total+c;

end;


run;


然而求出来的是全部的累加:

id v c total

01 1 1 1

01 2 2 3

01 3 3 6

02 1 2 8

02 2 2 10

02 3 3 13

02 4 4 17

03 1 1 18

03 2 2 20

03 3 3 23

04 1 1 24

04 2 2 26


求大神支招,指出错误!谢谢!



二维码

扫码加我 拉你入群

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

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

关键词:观测值 RETAIN Total cards until visit 如何 程序

沙发
forwings 发表于 2016-3-21 16:52:16
我自己解决了..

data add2 (drop = c);
set sum;
by id v;
retain total 0;
if  first.id then total=c;
if id=lag(id) then total=total+c;
if last.id then output;
run;

藤椅
孤单的我们 发表于 2016-3-21 17:02:21

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 11:23