全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1058 2
2012-06-10
我有一个数据集,里面包含了病例和对照,变量patints=1为病例,=0为对照,现在我要以性别(sex,age+ -5,village)作匹配条件,做1:4病例对照抽样,下面是程序

sample.cc<-function(data,seed,jieguo1,jieguo2){read.csv(data)->datset.seed(seed)attach(dat)

index<-which(patients==1) #确定患者所处数据框的位置
len.index<-length(index)
result<-matrix(nr=len.index,nc=5)
for(i in 1:len.index)

{index.contr<-which(sex==sex[index]&village==village[index]&age<(age[index]+5)&age>(age[index]-5))
sample.cc<-sample(index.contr,4)
result[i,]<-c(index,sample.cc)}

as.numeric(t(result))->result2


skip<-length(result2)/5-1

index.NA<-rep(c(rep(FALSE,5),TRUE),len.index) #插入NA值的角标
result3<-numeric()result3[index.NA]<-NA
result3[index.NA==FALSE]<-result2
dat[result3,]->dat.sample
detach(dat)as.data.frame(result)->result

names(result)<-c('病例','对照1','对照2','对照3','对照4')
write.csv(result,jieguo1)
write.csv(dat.sample,jieguo2)
print(result)}

虽然结果里病例和对照是按照1:4呈现,但是发现
结果的对照组里居然有病例出现,不知道哪儿出错了,请大神指点啊!万谢!!!


二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-10 23:49:04
好深奥!
二维码

扫码加我 拉你入群

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

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

2012-6-12 15:10:10
没人回答啊,自己顶!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群