我有一个包含三个变量的数据。患者ID为ID,访问为访问,第三个变量为Var。我有两次访问,我想对ID进行子集:
- 访问2中Var值缺失的id
- id在第一次访问中Var的值为2,在第二次访问中Var的值为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")