查找具有重复字段的 ID 时遇到问题
Trouble Finding ID's with Duplicate Fields
我的数据是这样的:
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 应该恰好有 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)
对对象进行排序...似乎每个 ID
都有count(Email)
共 1...
我会 dput
实际数据,但由于电子邮件地址的敏感性,我不能。
我猜你有 NULL
封电子邮件。您可以使用 count(*)
而不是 count(email)
:
找到它
select ID, count(*)
from data
group by ID
having count(*) > 1;
你也确定你没有相反的情况,多个ID具有相同的电子邮件吗?
select Email, count(*)
from data
group by Email
having count(*) > 1;
我的数据是这样的:
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 应该恰好有 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)
对对象进行排序...似乎每个 ID
都有count(Email)
共 1...
我会 dput
实际数据,但由于电子邮件地址的敏感性,我不能。
我猜你有 NULL
封电子邮件。您可以使用 count(*)
而不是 count(email)
:
select ID, count(*)
from data
group by ID
having count(*) > 1;
你也确定你没有相反的情况,多个ID具有相同的电子邮件吗?
select Email, count(*)
from data
group by Email
having count(*) > 1;