例如我的数据如下所示:
|ID|1160|1160|1216|1216|1132|1132|
|--|:---|:---|:---|:---|:---|:---|
|01|T |T |T |T |T |T |
|02|T |T |T |T |T |G |
|03|A |G |NA |NA |A |A |
|04|I |I |I |I |I |I |
|05|NA |NA |NA |NA |NA |NA |
|06|G |G |G |G |G |G |
我期待的结果是:
|ID|1160|1160|1216|1216|1132|1132|
|--|:---|:---|:---|:---|:---|:---|
|02|T |T |T |T |T |G |
|03|A |G |NA |NA |A |A |
您可以计算唯一值的数量并保留有多个的行。
dat[
sapply(data.frame(t(dat[, -1])), \(x) length(unique(x)) > 1),
]
ID 1160 1160 1216 1216 1132 1132
2 2 T T T T T G
3 3 A G <NA> <NA> A A
dat <- structure(list(ID = 1:6, `1160` = c("T", "T", "A", "I", NA, "G"
), `1160` = c("T", "T", "G", "I", NA, "G"), `1216` = c("T", "T",
NA, "I", NA, "G"), `1216` = c("T", "T", NA, "I", NA, "G"), `1132` = c("T",
"T", "A", "I", NA, "G"), `1132` = c("T", "G", "A", "I", NA, "G"
)), class = "data.frame", row.names = c(NA, -6L))