2015-02-05 52 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