如何检查一组列是否是 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))
我有一个数据框,其中包含大量没有 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))