在R中找到不匹配的变量

时间:2016-10-04 07:02:54

标签: r

我合并了两个数据集,但发现一小撮记录对某种疾病状态有不同的编码结果。 e.g

> ID <- c(1,2,3,4,5,6,7,8,9)
> status1 <- c(1,1,1,1,2,1,1,1,1)
> status2 <- c(1,1,1,2,1,1,1,1,1)
> df <- data.frame(ID, status1, status2)
> df
  ID status1 status2
1  1       1       1
2  2       1       1
3  3       1       1
4  4       1       2
5  5       2       1
6  6       1       1
7  7       1       1
8  8       1       1
9  9       1       1

对于status1和status2,第4行和第5行应该具有相同的结果。我试图生成一个包含所有不一致的表格

  ID status1 status2
4  4       1       2
5  5       2       1

我最接近的是

> discordant <- ifelse(df$status1 != df$status2,c(df$ID, df$status1, df$status2), NA)
> discordant
[1] NA NA NA  4  5 NA NA NA NA

我不确定为什么它只给我ID而不是status1和status2。

2 个答案:

答案 0 :(得分:0)

只是这个?

df[df$status1 != df$status2,]

ID status1 status2
4  4       1       2
5  5       2       1

答案 1 :(得分:-1)

啊,通过将ifelse与子集

结合起来计算出来
> discordant <- subset(df, ifelse(df$status1 != df$status2,TRUE, FALSE))
> discordant
  ID status1 status2
4  4       1       2
5  5       2       1