我有一个包含 1300 行的 2 列数据框。第一列有 160 个唯一值,第二列有 230 个唯一值。 我想获得具有最大行数的数据框子集,同时保持每列具有唯一值。
这是一个玩具数据框,其中每一行都是值的唯一组合。
subject1 = c("A","B","C","D")
subject2 = c("0","1")
df = expand.grid(V1 = subject1, V2 = subject2)
df = df[-5,] #we delete a row so that the df does not have all possible combinations between subject1 and subject 2
first second
A 0
B 0
C 0
D 0
B 1
C 1
D 1
我想对数据框进行子集化,以便两列都只有唯一值。唯一的条件是它应该具有最大可能的行数。
期望的输出可以是:
V1 V2
B 0
C 1
或
V1 V2
D 1
A 0
或出现在原始 df 上的唯一值的任何可能组合。
在我看来是一个简单的问题,但我在这里没有找到任何类似的问题, 谢谢!
以下将适用于您的示例数据,这些数据看起来非常简单,因此不确定它是否适用于您的真实数据。如果没有,很高兴更新答案:
data.frame(first = df$first[duplicated(df$first)],
second = unique(df$second[duplicated(df$second)]))
输出
first second
1 A D
2 C E