Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用data.table在重复调查中发现新个体_R_Data.table - Fatal编程技术网

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