R 如何使用data.table在重复调查中发现新个体
我有数据表明,在群体中,个体是唯一确定的,并进行了多次调查。有时在第一次调查后会出现新的个体,我想按组查找这些新个体。例如:R 如何使用data.table在重复调查中发现新个体,r,data.table,R,Data.table,我有数据表明,在群体中,个体是唯一确定的,并进行了多次调查。有时在第一次调查后会出现新的个体,我想按组查找这些新个体。例如: group <- rep(1:2, each=9) surv <- c(1,1,2,2,2,3,3,3,3,1,1,1,2,2,2,2,3,3) ind <- c("a","b","a","b","c","a","b&quo
group <- rep(1:2, each=9)
surv <- c(1,1,2,2,2,3,3,3,3,1,1,1,2,2,2,2,3,3)
ind <- c("a","b","a","b","c","a","b","c","d", "a","b","c", "a", "b","c","d", "a","b")
dat <- data.table(surv=surv, group=group, ind=ind)
setkey(dat, surv, group)
我对此感到困惑,以下启动程序代码显示了这一点:
dat[surv==2, !(ind %in% surv==1), by = group]
这是每个人在每个小组中进行的第一次调查
dat[order(ind, surv), .SD[1], .(group, ind)][surv != 1]
#> group ind surv
#> 1: 1 c 2
#> 2: 2 d 2
#> 3: 1 d 3
注:我排除了第一次调查中首次出现的个人。重复的
函数让您知道值首先出现的位置
dat[!duplicated(ind), ]
# surv group ind
# 1: 1 1 a
# 2: 1 1 b
# 3: 1 2 c
# 4: 2 2 d
dat[!duplicated(ind), ]
# surv group ind
# 1: 1 1 a
# 2: 1 1 b
# 3: 1 2 c
# 4: 2 2 d