如何检查一组列是否是 R 中数据框的超键?

How to check if a set of columns are a superkey of a data frame in R?

我有一个数据框,其中包含大量没有 ID 的观察值,但我相信它们确定了 3 列每个 observation/row(从这个意义上说,我说这些列是一个超级键,使用数据库的术语)。我怎样才能检查这个?

我知道,对于只有一列我可以使用一个函数作为重复项并查看频率,但是我如何管理多列并查找合并的重复行?

提前致谢!

或者您可以使用 dplyr

中的 distinct
library(dplyr)
#nrow(distinct(df, x, y, z))==nrow(df)

distinct(df, x, y, z)
  x y z
1 1 1 1
2 2 4 5  

数据

df <- data.frame(x=c(1,2,1),y=c(1,4,1), z=c(1,5,1))