统计211

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12125|回复: 11
打印 上一主题 下一主题

按对照匹配病例的SAS程序实现请教,^_^

[复制链接]
跳转到指定楼层
1
发表于 2010-11-11 12:30:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问大家一个SAS程序啊,如下面的数据,case为0是对照,case为1是病例,想要达到的目的是:以对照(case=0)为参照,为每一个对照选一个年龄上下相差不超过2岁的病例作为匹配,选过的病例不能再选。
pid case age
1 1 50
2 1 27
3 1 26
4 0 49
5 1 49
6 0 48
7 0 25
如第四个研究对象(pid=4),age=49,合适的匹配病例的年龄范围可以是47-51,这样的话第一个研究对象就合适;对第六个研究对象,age=48,合适的匹配对象可以是第一个和第五个,但是第一个已经被选,所以只能选第五个做为匹配。
不知道大家有没有比较好的方法能够批量实现上面的目的,非常感谢!^_^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
2
发表于 2010-11-11 22:14:25 | 只看该作者
以前做这个的时候,直接用Excel或者SPSS的排序、筛选纯手工操作。还好数据量不大,汗。。。
3
发表于 2010-11-11 22:16:20 | 只看该作者
本帖最后由 chenli 于 2010-11-11 22:16 编辑

前一段时间在哪本书上看到,可以用SPSS编写一个select的程序来实现。
4
发表于 2010-11-11 22:43:19 | 只看该作者
配对与否是在实验设计的时候考虑的,而不是有了数据以后考虑的
5
发表于 2010-11-13 12:21:07 | 只看该作者
回复 pigtail 的帖子

一针见血~但是我们做流行病学研究时,遇到的更多是像缘梦缘楼主所描述的情况,都是等资料收集好了,再配对,这理论不是与实际相违背?
6
发表于 2010-11-13 12:22:00 | 只看该作者
相应的SAS程序是怎么操作的?
7
 楼主| 发表于 2010-11-21 17:22:14 | 只看该作者
data temp;
input id group age;
cards;
1 1 50
2 1 27
3 1 26
4 0 49
5 1 49
6 0 48
7 0 25
;
run;
proc sql;
create table comp as
  select a.id as ida, a.group as groupa, a.age as agea,
         b.id as idb, b.group as groupb, b.age as ageb,
         abs(b.age-a.age) as gap_age
  from (select * from temp where group=1) as a,
       (select * from temp where group=0) as b
  where (ageb-agea) between -5 and 5
;
quit;
proc sort data=comp;
by  idb;
run;
data comp;
set comp;
by idb;
n=first.idb;
run;
proc sort data=comp;
by  ida;
run;
data comp;
set comp;
by ida;
m=first.ida;
run;
data comp(keep=ida agea idb ageb gap_age);
set comp;
if n=m;
run;
/*A :试验组  B:对照组   gap_age:年龄差*/

评分

参与人数 1统计币 +6 收起 理由
veil + 6

查看全部评分

8
发表于 2010-11-22 10:31:58 | 只看该作者
回复 缘梦缘 的帖子

看的头都晕了。
先试试看,谢谢缘梦缘!
9
发表于 2011-1-10 23:50:22 | 只看该作者
回复 缘梦缘 的帖子

It is too complicated. I am concern that maybe someone will be confused. You'd better to compiled your program as a macro.
10
发表于 2011-1-14 20:08:12 | 只看该作者
回复 缘梦缘 的帖子

里面好像没有考虑到缺少对照的情况,比如有年龄是10的病例,但没有年龄是8~12的对照,当出现这种情况的时候,没有给出处理的方法。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


免责声明|关于我们|小黑屋|联系我们|赞助我们|统计211 ( 闽ICP备09019626号  

GMT+8, 2025-4-2 11:24 , Processed in 0.085570 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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