我有一张21638行的表:
vocabulary <- read.table("http://socserv.socsci.mcmaster.ca/jfox/Books/Applied-Regression-2E/datasets/Vocabulary.txt", header=T)
该表有五列,其中第一列包含响应者的 ID 号。我想检查是否有受访者出现两次,或者是否所有的受访者都是独一无二的。
来计算我可以使用的唯一 ID
length(unique(vocabulary$id))
并检查是否有任何复制品,我可能做
length(unique(vocabulary$id)) == nrow(vocabulary)
返回 TRUE
,如果没有副本(没有副本)。
我的问题是:
有没有一种直接的方法来返回重复的值或行号?
一些进一步的解释:
使用函数 duplicated()
有一个解释问题,因为它只返回严格意义上的重复,不包括“原始”。例如,sum(duplicated(vocabulary$id))
或 dim(vocabulary[duplicated(vocabulary$id),])[1]
可能返回“5”作为重复行数。问题是,如果只知道重复的行数,就不知道它们重复了多少行。“5”是指有五行,每行有一个副本,还是有一行有五个副本?而且由于您不会有重复的 ID 或行号,因此您不会有任何方法来找到“原件”。
* 我知道在这个调查中没有重复的 ID,但这是一个很好的例子,因为使用任何其他地方给出的答案,如 ABC0或 table(vocabulary$id)
将输出一个干草堆到你的屏幕上,你将很难找到任何可能罕见的重复针。