【发布时间】:2016-07-19 12:48:56
【问题描述】:
我有一个如下所示的数据框。我想找到唯一的行(唯一性)。但是在这个数据中我有'NA'。我喜欢如果一行中具有 NA 值的所有值与其他行相同(如行:1,2,5)我想忽略它,但如果不相同(如行:2,4)我喜欢保留它作为唯一的行。 例如,在第 1 、2 和 6 行中,除 NA 之外的所有值都是相同的,所以因为 NA 可以是值 '1 和 3' 我喜欢删除这一行并保留第 2 行。 此外,在第 6 行中,值 2 和 3(不包括 NA)与行 c2 和 c5 相同,并且 c6 中的 NA 可能获得与 c2 和 c5 相同的值,因此该行不是唯一的。
另外,@Sotos 解决方案对我的帮助更大,但在最后一部分中,在为 rows 制作模式时删除 NA 后,他的解决方案考虑了 c8 和 c6 的相同模式 (23) 并删除它们。但实际上 c8 是独一无二的。
数据:
a1 a2 a3 a4
c1 2 1 3 NA
c2 2 1 3 3
c3 2 1 4 3
c4 2 2 3 NA
c5 2 1 3 3
c6 2 NA 3 NA
c7 2 NA 0 NA
c8 2 3 NA NA
我想要这个输出:
输出:
a1 a2 a3 a4
c2 2 1 3 3
c3 2 1 4 3
c4 2 2 3 NA
c7 2 NA 0 NA
c8 2 3 NA NA
【问题讨论】:
-
所以在检查 dups 时 NA 是通配符?
-
你可以使用
hclust来直观的看到相似度:plot(hclust(dist(your_data_frame))) -
Mehrad@ 感谢剧情,剧情不错,信息也很好
标签: r dataframe unique uniqueidentifier substitution