2015-02-05 72 views
0

我的数据是这样的:无法找到ID与重复字段

ID Email 
1 [email protected] 
2 [email protected] 
3 [email protected] 
4 [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) 

我也试着脱下having条款,并将结果发送到一个对象,并通过count(Email)排序的对象。 ..看来,每IDcount(Email)的1 ...

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

+0

看看'?duplicated' – shadow 2015-02-05 15:42:12

+0

尝试'集团通过Emails'然后寻找的ID在那里,电子邮件数超过1 如果按ID你总是会得到1为计数(电子邮件) – 2015-02-05 15:43:17

+0

@shadow '重复'给了逻辑(0)'Idk为什么,因为肯定有重复... – 2015-02-05 17:54:53

回答

2

你也确保你不会有相反的情况,多个ID使用相同的电子邮件?

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

这工作!谢谢 – 2015-02-05 17:58:49

2

我想到你有NULL电子邮件。您可以通过使用count(*),而不是count(email)找到这个:

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

谢谢。是的,我也怀疑这个,但是这给了我'<0 rows>(或0长度row.names)'以及... – 2015-02-05 17:54:09

+0

好吧我已经看过通过查看(数据$电子邮件[订单(数据$电子邮件),]),所以他们重复后续 – 2015-02-05 17:58:02