SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1777|回复: 5
打印 上一主题 下一主题

搜索最后一次“行为转折”时间点

[复制链接]

3

主题

10

帖子

67

积分

注册会员

Rank: 2

积分
67
跳转到指定楼层
楼主
发表于 2014-5-24 22:30:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hwb 于 2014-5-24 22:38 编辑
  1. DATA A;
  2. INPUT id time1        b1 $ time2 b2 $        time3 b3 $ time4 b4 $ time5        b5 $ @@;
  3. CARDS;
  4. 101.00        1.00        A        2.00        A        3.00        A        4.00        B        5.00        B
  5. 102.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        B
  6. 103.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  7. 104.00        1.00        A        2.00        B        3.00        B        4.00        B        5.00        B
  8. 105.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  9. 106.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
  10. 107.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  11. 108.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  12. 109.00        1.00        A        2.00        B        3.00        B        4.00        B        5.00        B
  13. 110.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  14. 111.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        B
  15. 112.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
  16. 113.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  17. 114.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  18. 115.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  19. 116.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
  20. 117.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  21. 118.00        1.00        A        2.00        A        3.00        A        4.00        B        5.00        B
  22. ;
  23. RUN;
  24. PROC PRINT DATA=A;
  25. RUN;
  26. QUIT;
复制代码

数据结构如代码所示,目的是求得不同时期(time1- time5), 变量b最后一次出现A的时间点(新变量),
如能有效回复,不胜感激

分享到:  微信微信
收藏收藏
回复

使用道具 举报

11

主题

49

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
推荐
发表于 2014-5-30 00:36:53 | 只看该作者
DATA A;
INPUT id time1        b1 $ time2 b2 $        time3 b3 $ time4 b4 $ time5        b5 $ @@;
mm=ifn(findc(cats(b5,b4,b3,b2,b1),'A')>0,6-findc(cats(b5,b4,b3,b2,b1),'A'),0);
CARDS;
101.00        1.00        A        2.00        A        3.00        A        4.00        B        5.00        B
102.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        B
103.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
104.00        1.00        A        2.00        B        3.00        B        4.00        B        5.00        B
105.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
106.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
107.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
108.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
109.00        1.00        A        2.00        B        3.00        B        4.00        B        5.00        B
110.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
111.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        B
112.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
113.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
114.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
115.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
116.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
117.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
118.00        1.00        A        2.00        A        3.00        A        4.00        B        5.00        B
;
RUN;
回复 支持 1 反对 0

使用道具 举报

3

主题

10

帖子

67

积分

注册会员

Rank: 2

积分
67
沙发
 楼主| 发表于 2014-5-25 22:42:48 | 只看该作者
期待回复@@
回复 支持 反对

使用道具 举报

0

主题

2

帖子

36

积分

新手上路

Rank: 1

积分
36
板凳
发表于 2014-5-26 16:52:59 | 只看该作者
  1. DATA A;
  2. INPUT id time1        b1 $ time2 b2 $        time3 b3 $ time4 b4 $ time5        b5 $ @@;
  3. CARDS;
  4. 101.00        1.00        A        2.00        A        3.00        A        4.00        B        5.00        B
  5. 102.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        B
  6. 103.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  7. 104.00        1.00        A        2.00        B        3.00        B        4.00        B        5.00        B
  8. 105.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  9. 106.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
  10. 107.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  11. 108.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  12. 109.00        1.00        A        2.00        B        3.00        B        4.00        B        5.00        B
  13. 110.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  14. 111.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        B
  15. 112.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
  16. 113.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  17. 114.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  18. 115.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  19. 116.00        1.00        B        2.00        B        3.00        B        4.00        B        5.00        B
  20. 117.00        1.00        A        2.00        A        3.00        A        4.00        A        5.00        A
  21. 118.00        1.00        A        2.00        A        3.00        A        4.00        B        5.00        B
  22. ;
  23. RUN;
  24. PROC PRINT DATA=A;
  25. RUN;
  26. QUIT;


  27. *目的,找到b1-b5中最后一次出现"A"的时刻;
  28. *思路是利用transpsoe对数据进行转置,然后排序,通过last.id函数找到最后的‘A’,根据命名规则,bi对应timei;
  29. proc transpose data=a out=test(rename=(COL1=value _NAME_=label));
  30.    var b: ;
  31.    by id;
  32. run;
  33. proc sort data=test ;
  34.    by id value;
  35. run;
  36. data test_1;
  37.    set test;
  38.    by id value;
  39.    if last.value & value="A" then output;
  40. run;
  41.    
复制代码
回复 支持 反对

使用道具 举报

3

主题

10

帖子

67

积分

注册会员

Rank: 2

积分
67
地板
 楼主| 发表于 2014-5-27 08:40:32 | 只看该作者
回复 支持 反对

使用道具 举报

3

主题

10

帖子

67

积分

注册会员

Rank: 2

积分
67
6#
 楼主| 发表于 2014-5-30 07:58:16 | 只看该作者
gogotiger 发表于 2014-5-30 00:36
DATA A;
INPUT id time1        b1 $ time2 b2 $        time3 b3 $ time4 b4 $ time5        b5 $ @@;
mm ...

京剧,,谢谢gogotiger
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-12-22 00:22 , Processed in 0.145920 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表