楼主: Hollycherry
1908 10

[原创博文] 请SAS高手帮助 [推广有奖]

  • 1关注
  • 1粉丝

讲师

77%

还不是VIP/贵宾

-

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

楼主
Hollycherry 发表于 2011-11-4 01:43:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
像这样的数据, 变量有很多,定义发病为从0 到1,病愈为从1 到0,0,如何用SAS解决? 像第一个病人在疾病a中就有两次发病,病愈过程。 十分感谢大家。

obs        a1        a2        a3        a4        a5        a6        a7        b1        b2        b3        b4        b5        b6        b7
1        0        1        0        0        1        0        0        0        0        0        0        0
2        1        0        1        0        1        0        0        1                0        0        1        0        0
3        1        0        1        1        1        0        0        1        1        0        0        1        0        0
4        0        0        0                                                        0        0        0        0        0
5        0        1        1        1        1        0        0        1        1        0        0        1        0        0
6        0        0        0        1        0        0        0        0        0        0        0        0        0        0
7        0        1        0        0                                0        1        0        0        1        0        0
二维码

扫码加我 拉你入群

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

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

关键词:如何用 obs 如何

回帖推荐

dyes0506 发表于6楼  查看完整内容

/*简单一点,呵呵*/ data sample; input a1-a7 b1-b7; cards; 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 ...

本帖被以下文库推荐

沙发
Hollycherry 发表于 2011-11-4 05:21:41
我想求出分别对疾病a 和b 有几次新发病( a1 和b1中是1 的不计在内),和几次病愈。 谢谢。 急用。

藤椅
quanjk 发表于 2011-11-4 05:45:05
友情帮顶

板凳
Hollycherry 发表于 2011-11-4 11:37:00
只有路过的?谢了quanjk 友情帮顶。

报纸
zhangzachary 发表于 2011-11-4 15:50:30
我把缺失值当0处理,如果真的是缺失的,稍微改下程序就行,用的是最笨的办法,反正能解出来。。。
  1. DATA ab;
  2. INPUT num a1-a7 b1-b7;
  3. DATALINES;
  4. 1        0        1        0        0        1        0        0        0        0        0        0        0        0        0
  5. 2        1        0        1        0        1        0        0        1        0        0        0        1        0        0
  6. 3        1        0        1        1        1        0        0        1        1        0        0        1        0        0
  7. 4        0        0        0        0        0        0        0        0        0        0        0        0        0        0
  8. 5        0        1        1        1        1        0        0        1        1        0        0        1        0        0
  9. 6        0        0        0        1        0        0        0        0        0        0        0        0        0        0
  10. 7        0        1        0        0        0        0        0        0        1        0        0        1        0        0
  11. ;
  12. RUN;

  13. DATA res;
  14. SET ab;
  15. a_n1=0;
  16. a_n2=0;
  17. b_n1=0;
  18. b_n2=0;
  19. ARRAY a{7} a1-a7;
  20. ARRAY b{7} b1-b7;
  21. DO i=1 TO 6;
  22. IF a{i}=0 and a{i+1}=1 THEN a_n1+1;
  23. IF b{i}=0 and b{i+1}=1 THEN b_n1+1;
  24. END;
  25. DO j=1 TO 5;
  26. IF a{j}=1 and a{j+1}=0 and a{j+2}=0 THEN a_n2+1;
  27. IF b{j}=1 and b{j+1}=0 and b{j+2}=0 THEN b_n2+1;
  28. END;
  29. DROP i j;
  30. RUN;
复制代码
已有 1 人评分热心指数 收起 理由
Hollycherry + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

地板
dyes0506 发表于 2011-11-4 20:21:06
zhangzachary 发表于 2011-11-4 15:50
我把缺失值当0处理,如果真的是缺失的,稍微改下程序就行,用的是最笨的办法,反正能解出来。。。
/*简单一点,呵呵*/
data sample;
input a1-a7 b1-b7;
cards;
0        1        0        0        1        0        0        0        0        0        0        0
1        0        1        0        1        0        0        1                0        0        1        0        0
1        0        1        1        1        0        0        1        1        0        0        1        0        0
0        0        0                                                        0        0        0        0        0
0        1        1        1        1        0        0        1        1        0        0        1        0        0
0        0        0        1        0        0        0        0        0        0        0        0        0        0
0        1        0        0                                0        1        0        0        1        0        0
;
run;
/*明确输入数据后*/
data ab;
set sample;
        array a a1-a7;
        array b b1-b7;
        do i=1 to 6;
                sick_a+(a(i+1)-a(i)=1);
                sick_b+(b(i+1)-b(i)=1);
        end;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

从数据到结论过程关键的是人不是软件......

7
Hollycherry 发表于 2011-11-4 20:27:52
真是太好了,感谢zhangzachary。 还有疑问,有几百个变量,怎样修改呢?

8
jingju11 发表于 2011-11-4 21:11:54
zhangzachary 发表于 2011-11-4 15:50
我把缺失值当0处理,如果真的是缺失的,稍微改下程序就行,用的是最笨的办法,反正能解出来。。。
{a} ={0111110},--->a_n1 =1, okay; but a_n2 =0, correct?
sorry, my mistake: it says: from 1 to 00.
JingJu

9
jingju11 发表于 2011-11-5 04:56:44
我觉得这个问题本身有些概念问题。0 1 0 0 是一次发病然后一次治愈;那么0 1 0 1是两次发病没有治愈。既然没有一次治愈,何谓两次发病?
京剧

10
Hollycherry 发表于 2011-11-5 10:03:00
这个问题问的很实际。我给出的数据是模拟的。 我看了一下原始数据,还真有这样的值0 1 0 1.变量是测试结果。 也许就像病人反复高烧吧 。

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

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