楼主: Hollycherry
1672 7

边干边学中,又有问题像高手请教 [推广有奖]

  • 1关注
  • 1粉丝

讲师

77%

还不是VIP/贵宾

-

威望
0
论坛币
91 个
通用积分
0.0498
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
85040 点
帖子
98
精华
0
在线时间
1072 小时
注册时间
2011-1-12
最后登录
2025-3-8

楼主
Hollycherry 发表于 2011-11-7 04:37:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据如下, 变量t_1-t_7代表时间(以月计),定义发病(a 和 b) 为从1 到0,
如何求出 1. 第一次发病对应的时间(会有多于一次发病的情况);
2. 如第一次发病在10个月以内的,真为1,否为0.
谢谢!

DATA ab;
    INPUT num a_1-a_7 b_1-b_7 t_1-t_7;
    DATALINES;
1 0 1 0 0 1 0 0 0 0 0 0 0 0 .   1 2 5 8 11 14 17
2 1 0 1 0 1 0 0 0 1 0 0 0 1 0   1 2 3 6 10 13 16
3 1 0 1        1 1 0 0        0 1 1 0        0 1 .         1 3 4 7 11 14 17
4 0 0 0        0 0 0 0        0 0 0 0        0 0 0         1 3 4 7 9 12 15
5 0 1 1        1 1 . .        . 1 1 0        0 1 0         1 4 6 8 12 15 17
6 0 0 0        1 . . .        0 1 0 0        . . .         1 2 5 8 . . .
7 0 1 0        0 1 0 0        0 0 1 0        0 1 0         1 3 5 8 12 15 18
;
    RUN;

二维码

扫码加我 拉你入群

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

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

关键词:边干边学 Lines Input Data line 如何

沙发
quanjk 发表于 2011-11-7 05:24:49
友情帮顶

藤椅
guanli3028 发表于 2011-11-7 07:23:40
帮顶

板凳
zhangzachary 发表于 2011-11-7 10:32:06
  1. Data res;
  2. set ab;
  3. array a{7} a_1-a_7;
  4. array b{7} b_1-b_7;
  5. array t{7} t_1-t_7;
  6. first_a=0;
  7. first_b=0;
  8. i=1;
  9. s_a=0;
  10. do while (s_a<1 and i<8);
  11. if a{i}=1 then do;
  12. s_a=i;
  13. first_a=t{i};
  14. end;
  15. else i+1;
  16. end;
  17. j=1;
  18. s_b=0;
  19. do while (s_b<1 and j<8);
  20. if b{j}=1 then do;
  21. s_b=j;
  22. first_b=t{j};
  23. end;
  24. else j+1;
  25. end;
  26. drop i j;
  27. run;
复制代码
first 是第一次发病的月份 s是第一次发病的调查次数
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

报纸
Hollycherry 发表于 2011-11-7 11:39:05
感谢热心的回帖。我跑了一下zhangzachary提供的代码,能修改吗?
我要求解的是,举个例,对于观测值3 来说, 第一次生a病是a_3,对应的时间是3(个月,t_3),10 个月内发生的值是1,第一次生b病是b_5,对应的时间是7(个月, t_5),  10 个月内发生的值是正好也是1。对于给定的数据,怎样用SAS找到对应的值?

另变量很多,假设有a-z, 并有规律每个变量都是从1到7,能否用array 矩阵或宏来实现?
谢谢关注。

地板
zhangzachary 发表于 2011-11-7 12:04:03
不好意思我一边上班一边写的代码,没记得最后问题是要10个月内的,就记了个算次数,不过这个可以用t{i}的数值检测的。如果变量比观测值多很多,那不如转置后做。。。对于变量之间的运算比较,宏和array其实也都是用来简化变量名方便计算的,有IML么放入矩阵算也可以。。。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

7
Hollycherry 发表于 2011-11-7 13:22:58
zhangzachary,跑了你的程序,output 里first_a,first_b不对,并不是指到第一次生病,而且我想找出相应的时间。 谢谢你,上次给的程序很有帮助。

8
zhangzachary 发表于 2011-11-7 13:44:55
Hollycherry 发表于 2011-11-7 13:22
zhangzachary,跑了你的程序,output 里first_a,first_b不对,并不是指到第一次生病,而且我想找出相应的时 ...
first 是第一次发病的月份 s是第一次发病的调查次数,不好意思没解释好。。。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 16:23