楼主: feixing0216
2447 11

一个SAS难题 [推广有奖]

  • 3关注
  • 1粉丝

已卖:27份资源

博士生

32%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
2 点
热心指数
1 点
信用等级
1 点
经验
9086 点
帖子
204
精华
0
在线时间
276 小时
注册时间
2010-1-16
最后登录
2021-11-8

楼主
feixing0216 在职认证  发表于 2013-5-9 16:37:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据集a部分数据如下
timen

9:25:08

1

9:30:03

1

9:30:08

1

9:30:13

1

9:30:18

0

9:30:23

0

9:30:33

1

9:30:38

0

9:30:43

1

9:30:53

1

9:31:03

1

9:31:08

0

问题是增加一列interval,interval等于n列1或0持续出现的时间


二维码

扫码加我 拉你入群

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

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

关键词:Interval inter Inte time 部分数据

本帖被以下文库推荐

无悔这一生

沙发
zhou.wen 发表于 2013-5-9 17:32:53
  1. data out;
  2. set a;
  3. retain starttime;
  4. if n^=lag(n) then do;
  5. starttime=time;
  6. interval=0;
  7. end;
  8. if n=lag(n) then
  9. interval =time-starttime;
复制代码
Practice Is The Best Teacher!

藤椅
boe 发表于 2013-5-9 17:37:19
data timecum;
  set test;
  by n notsorted;
  if first.n;
  timelag=lag(time);
  timeinterval=time-timelag;
  format timeinterval time8.;
  drop timelag;
run;
Gorgeous girl , I love !

板凳
heperwong 在职认证  发表于 2013-5-9 17:44:10
  1. data raw;
  2. input time time7.  n;
  3. cards;
  4. 9:25:08  1
  5. 9:30:03  1
  6. 9:30:08  1
  7. 9:30:13  1
  8. 9:30:18  0
  9. 9:30:23  0
  10. 9:30:33  1
  11. 9:30:38  0
  12. 9:30:43  1
  13. 9:30:53  1
  14. 9:31:03  1
  15. 9:31:08  0
  16. ;
  17. run;

  18. data wanted;
  19. set raw;
  20. retain time1;
  21. n1=lag(n);
  22. if n1^=n then time1=time;
  23. interval=time-time1;
  24. format time interval time7.;
  25. drop n1 time1;
  26. run;
复制代码

报纸
heperwong 在职认证  发表于 2013-5-9 18:00:20
boe的报warning,可以改一下。
  1. data wanted1;
  2. set raw;
  3. retain time1;
  4. by n notsorted;
  5. if first.n then time1=time;
  6. if last.n then interval=time-time1;
  7. format  time interval time7.;
  8. drop n1 time1;
  9. run;
复制代码

地板
boe 发表于 2013-5-9 18:08:07
heperwong 发表于 2013-5-9 18:00
boe的报warning,可以改一下。
我这里没问题啊。你的结果和我的不一样,主要是在处理1和0、0和1交替的地方,不知道哪一种方法合理?
Gorgeous girl , I love !

7
feixing0216 在职认证  发表于 2013-5-10 17:16:08
谢谢了
无悔这一生

8
jolterheadmmtt 发表于 2013-8-5 16:49:17
mark一下

9
scarfacetony 发表于 2013-8-5 19:28:36
  1. data a;
  2.         input t :time9. type :best6.;
  3.         format t time9.;
  4.         cards;
  5. 9:25:08        1
  6. 9:30:03        1
  7. 9:30:08        1
  8. 9:30:13        1
  9. 9:30:18        0
  10. 9:30:23        0
  11. 9:30:33        1
  12. 9:30:38        0
  13. 9:30:43        1
  14. 9:30:53        1
  15. 9:31:03        1
  16. 9:31:08        0
  17. ;
  18. run;

  19. data b(keep=t type z);
  20.         format ctype best6. ct time9. z time9.;
  21.         ctype=type;
  22.         ct=t;
  23.         set a;
  24.         retain z;
  25.         if type=ctype then z+t-ct;
  26.                 else z=0;
  27. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Actree + 1 + 1 + 1 值得学习

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

看了这个视频,我于是有了进股市的信心!
https://bbs.pinggu.org/thread-2787427-1-1.html

10
ECNU_zf 发表于 2013-8-6 14:38:44
data b;
informat time time8.;
format time time8.;
input time /n;
cards;
9:25:08
1
9:30:03
1
9:30:08
1
9:30:13
1
9:30:18
0
9:30:23
0
9:30:33
1
9:30:38
0
9:30:43
1
9:30:53
1
9:31:03
1
9:31:08
0
;run;
proc sort data=b;
by time;
run;
data want;
set b;
retain starttime 0;
if _n_=1 then starttime=time;
if n^=lag(n) then do;starttime=time;d=0;end;
if n=lag(n) then d=time-starttime;
run;

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

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