我有一个包含20列和大约200行的数据框,我想找到唯一的行。问题是几乎每一行都有几个NAs混入:这实际上是缺少数据,我希望将NA视为"通配符",不用于匹配其他NA。
以下两行应被视为匹配(即非唯一)
T, S, NA, Z
NA, S, G, Z
我已尝试将不兼容的参数用于独特的功能,但它似乎并未实现。非常感谢。
答案 0 :(得分:0)
将它放在双循环中:
all(na.omit(x[1,] == x[2,]))
用i和j替换1和2,循环完成需要检查的所有比较。
答案 1 :(得分:0)
你可以尝试
val <- apply(df, 1, function(x) {paste(na.omit(x), collapse='')})
df[!duplicated(val),]
# V1 V2 V3 V4
#1 T S <NA> Z
#2 <NA> S G Z
#3 S G Z T
df <- structure(list(V1 = c("T", NA, "S", "S", "S"), V2 = c("S", "S",
"G", NA, "G"), V3 = c(NA, "G", "Z", "Z", NA), V4 = c("Z", "Z",
"T", "G", "Z")), .Names = c("V1", "V2", "V3", "V4"), row.names = c(NA,
-5L), class = "data.frame")