【发布时间】:2018-09-08 13:55:54
【问题描述】:
我有一个如下所示的数据框:
Input <- data.frame(ID = c("1", "2", "3", "4", "5", "6", "7", "8"),
V1 = c("A1", "A1", "G2", "G3", "G3", "G1", "G3", "G1" ),
V2 = c("A1", "G2", "A1", "G2", "G3", "G3", "G1", "G3" ))
我想删除 行,其中“V1”和“V2”两列中的(单个)观察结果重复无论(单个)特定观察是否在“V1”或“V2”。 结果应如下所示(例如,A1 出现在第 2 行和第 3 行:删除第 2 行和第 3 行)。
Output <- data.frame(ID = c("1", "4"),
V1 = c("A1", "G3"),
V2 = c("A1", "G2"))
【问题讨论】:
-
或许
t(apply(Input[-1], 1, sort)) -> m1; > !(duplicated(m1)|duplicated(m1, fromLast = TRUE)) -> i1; Input[i1,] -
谢谢,但代码不起作用。如果我调整代码,仍然会列出第 5 行(鉴于第 4 行中的 G3,这是错误的)
-
鉴于 G3 出现在第 4 行,因此应删除第 5 行。
-
我认为 duplicates 表明第一次出现不是重复的,只有后面的那些(匹配)。
-
如果第 4 行因为“G3”是新的而保留,那么第 2 行不应该因为“G2”而保留吗?
标签: r dataframe duplicates