最初的问题:我的工作要求我经常在大型数据集(基数,关系,唯一性等)上分析数据。。。。,并且经常这样做。目的是使用R来分析数据并在R Markdown中创建报告。
我的问题是:1.数据加载到R个数据帧中2.如何识别数据库术语中的所谓复合主键?
例如,我有一张包含75,000条记录的表。我进行了一次套索以获取每个变量的唯一计数。但是,除非其中一个变量的计数为75,000,否则没有单个主键。换句话说,没有一个变量可用于唯一地标识单个观测值。
然后,目标变得寻找唯一标识每个观察值(行)的变量(列)的组合。这可以是160个变量数据帧/表中的两个,三个或四个变量/列。而且,当然,在没有唯一标识每一行或观察值的键组合的情况下,总会有重复项。
我已经成功完成了一个“ for”循环(很丑陋),但是我认为有一些优雅,更有效的方法可以做到这一点。
如何找到构成复合主键的变量?
修改后的问题:
############### Data1 - 2 columns - one PK
data1 <- data.frame(rep_len(1, length.out = 10))
data1$PK <- rep_len(1:10, length.out = 10)
names(data1) <- c('DupData', 'PK')
rownames(data1) <- NULL
rapply(data1,function(x)length(unique(x)), how = 'unlist')
DupData PK
1 10
length(unique(data1$PK))
[1] 10
Run Code Online (Sandbox Code Playgroud)
接下来是一个具有3列的数据帧,但是需要两列才能进行唯一观察:
############### Data2 - 3 columns - Two column composite PK
data2 <- data1
data2$PK <- rep_len(1:2, length.out = 10)
data2$PK2 <- rep_len(2:6, length.out = 10)
rapply(data2,function(x)length(unique(x)), how = 'unlist')
DupData PK PK2 …Run Code Online (Sandbox Code Playgroud) r ×1