查找包含重复字段的 ID 时遇到问题

Trouble Finding ID's with Duplicate Fields

提问人:Hack-R 提问时间:2/5/2015 最后编辑:Dusan GrubjesicHack-R 更新时间:2/6/2015 访问量:49

问:

我的数据如下所示:

ID  Email
1   [email protected]
2   [email protected]
3   [email protected]
4   someone[email protected]
5   [email protected]
6   [email protected]

每个 ID 应该正好有 1 封电子邮件,但事实并非如此。

> dim(data)
[1] 5071    2
> length(unique(data$Person_Onyx_Id))
[1] 5071
> length((data$Email))
[1] 5071
> length(unique(data$Email))
[1] 4481

因此,我需要找到具有重复电子邮件地址的ID。

看起来这应该很容易,但我要指出:

> sqldf("select ID, count(Email) from data  group by ID having count(Email) > 1")
[1] ID count(Email)  
<0 rows> (or 0-length row.names)

我还尝试删除子句并将结果发送到对象,并按...似乎每个人都有 1...havingcount(Email)IDcount(Email)

我会提供实际数据,但由于电子邮件地址的敏感性,我不能。dput

sql r sqldf

评论

0赞 shadow 2/5/2015
?duplicated
0赞 Blood-HaZaRd 2/5/2015
尝试然后查找电子邮件计数大于 1 的 ID。如果您按 ID 分组,您将始终获得 1 作为计数(电子邮件)Group By Emails
0赞 Hack-R 2/6/2015
@shadow告诉了 Idk 原因,因为肯定有重复的......duplicatedlogical(0)

答:

2赞 Gordon Linoff 2/5/2015 #1

我的猜测是你有电子邮件。你可以通过使用而不是以下方法找到它:NULLcount(*)count(email)

select ID, count(*)
from data
group by ID
having count(*) > 1;

评论

0赞 Hack-R 2/6/2015
谢谢。是的,我也对此持怀疑态度,但这也给了我......<0 rows> (or 0-length row.names)
0赞 Hack-R 2/6/2015
好的,我已经通过 View(datat$Email[order(data$Email),]) 查看了重复项,所以它们毕竟是重复项
2赞 HLGEM 2/5/2015 #2

你是否也确定你没有相反的情况,同一个电子邮件的多个ID?

select Email, count(*)
from data
group by Email
having count(*) > 1;