比较 R 中的两次访问

Comparing two visits in R

我有一个包含三个变量的数据。患者 ID 为 ID,Visit 为 Visit,第三个变量为 Var。我有两次访问,我想对 ID 进行子集化:

  1. 访问 2 中 Var 值缺失的 ID
  2. ID 在访问 1 中的 Var 值为 2,但在访问 2 中为 1,反之亦然
ID Visit Var
1    1   2
1    2   2
2    1   1
2    2   2
3    1   2
3    2   1
4    1   2
4    2   NA  

您可以使用 [ 进行子集化,使用 == 表示相等,使用 & 表示,is.na 测试缺失值。

unique(x$ID[x$Visit == 2 & is.na(x$Var)])
#[1] 4

intersect(unique(x$ID[!is.na(x$Var) & x$Var == 2 & x$Visit==1])
        , unique(x$ID[!is.na(x$Var) & x$Var == 1 & x$Visit==2]))
#[1] 3

数据:

x <- read.table(header=TRUE, text="ID Visit Var
1    1   2
1    2   2
2    1   1
2    2   2
3    1   2
3    2   1
4    1   2
4    2   NA")