我有纵向数据格式,如下所示。我想为每个主题创建一个关于其“疾病”状态的索引。如果疾病状态为NA或0,则指数为0;如果疾病状态为1,则指数为1.
但是,我希望同一主题中的每一行都具有相同的索引,忽略它们的状态是什么观察点。比方说,只要个人的'disease = 1'忽略哪一行,该个人的所有行的索引应为1。
有人有好主意吗? 谢谢!
id disease index 1 NA 0 1 NA 0 1 NA 0 2 NA 1 2 1 1 2 1 1 3 NA 1 3 NA 1 3 1 1 4 1 1 4 0 1 4 0 1 5 0 0 5 0 0 5 0 0
答案 0 :(得分:2)
data.table
require(data.table)
DT <- data.table(dat)
DT[, index := as.numeric(sum(disease >= 1, na.rm=TRUE)>0), by=id]
R
INDX <- tapply(dat$disease, dat$id, function(x)
as.numeric(sum(x >= 1, na.rm=TRUE)>0))
INDX <- data.frame(id=names(INDX), index=INDX)
dat <- merge(dat, INDX)