我有如下所示的纵向数据格式。我想为每个受试者创建一个关于其“疾病”状态的索引。如果疾病状态为 NA 或 0,则该指数为 0;如果疾病状态为1,则指数为1。
但是,我希望同一主题中的每一行都具有相同的索引,而不管它们在哪个观察点上的状态。比如说,只要个体患有“疾病=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
最佳答案
假设 dat 是您的数据
使用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)
关于r - 如何在纵向数据中创建行/主题索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19013457/