我的数据如下:
ID Email
1 someone@hotmail.com
2 someone1@hotmail.com
3 someone2@hotmail.com
4 someone3@hotmail.com
5 someone4@hotmail.com
6 someone5@hotmail.com
每个ID应该只有一封电子邮件,但没有。
> 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)
我还尝试取消having
子句并将结果发送到对象并按count(Email)
对对象进行排序......似乎每个ID
都有{{ 1}} 1 ...
我会count(Email)
实际数据,但由于电子邮件地址的敏感性,我不能。
答案 0 :(得分:2)
我的猜测是你有NULL
封电子邮件。您可以使用count(*)
而非count(email)
:
select ID, count(*)
from data
group by ID
having count(*) > 1;
答案 1 :(得分:2)
您是否也确定没有相反的情况,多个ID使用相同的电子邮件?
select Email, count(*)
from data
group by Email
having count(*) > 1;