楼主: zkfu41
1671 2

SAS计算平均持续时间 [推广有奖]

  • 3关注
  • 1粉丝

副教授

85%

还不是VIP/贵宾

-

威望
0
论坛币
448 个
通用积分
50.7133
学术水平
16 点
热心指数
20 点
信用等级
8 点
经验
52971 点
帖子
441
精华
0
在线时间
1610 小时
注册时间
2005-9-19
最后登录
2024-4-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
目前碰到一个问题,想不出解法。特此请教各位高手指点。

A:  0 1 1 1 0 0 1 1 1
B:  1 1 1 0 1 1 0 0 1



想分别知道A和B中出现1的次数和连续出现1的次数。对于A,1一共出现了6次,其中连续出现的频率为两次;对于B,1共出现6次,其中连续出现的频率为3次。
这样A出现1的平均长度为(3+3)/2=3
B出现1的平均长度为(3+2+1)/3=2

请问如何用SAS编程求解?
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:持续时间 SAS编程 高手指点 如何用 如何

沙发
mingfeng07 学生认证  发表于 2015-3-26 12:09:39 |只看作者 |坛友微信交流群
  1. data a;
  2. input A         @@;
  3. cards;
  4. 0 1 1 1 0 0 1 1 1
  5. ;
  6. run;
  7. data b;
  8. set a end=last;
  9. retain flag 0;
  10. lag_A=lag(A);
  11. if lag_A^=A and A=1 then flag+1;
  12. if A=1 then sum+1;
  13. if last then do;
  14. freq=sum/flag;
  15. output;
  16. end;
  17. run;
复制代码

使用道具

藤椅
zkfu41 发表于 2015-3-26 14:43:54 |只看作者 |坛友微信交流群
非常感谢!

使用道具

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

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

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

GMT+8, 2024-5-25 13:26