比较 R 中的两次访问
Comparing two visits in R
我有一个包含三个变量的数据。患者 ID 为 ID,Visit 为 Visit,第三个变量为 Var。我有两次访问,我想对 ID 进行子集化:
- 访问 2 中 Var 值缺失的 ID
- 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")
我有一个包含三个变量的数据。患者 ID 为 ID,Visit 为 Visit,第三个变量为 Var。我有两次访问,我想对 ID 进行子集化:
- 访问 2 中 Var 值缺失的 ID
- 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")