在R中仅在一个组中查找重复项
我在R中有以下数据帧在R中仅在一个组中查找重复项,r,R,我在R中有以下数据帧 Number ship_no 4432 1 4432 2 4564 1 4389 5 6578 6 4389 3 4355 10 4355 10 4689 12 4689 12 我只想在一个装运编号中找到重复的编号 Number ship_no 4355
Number ship_no
4432 1
4432 2
4564 1
4389 5
6578 6
4389 3
4355 10
4355 10
4689 12
4689 12
我只想在一个装运编号中找到重复的编号
Number ship_no
4355 10
4689 12
在R中如何执行此操作?在这种情况下,您只需执行以下操作:
df[duplicated(df),]
Number ship_no
8 4355 10
10 4689 12
自
如果同一行中可能有两个以上的重复项,可以将其包装为unique()
要保留其他副本,请执行以下操作:
library(dplyr)
df %>% group_by(Number) %>%
filter(duplicated(Number) | duplicated(Number,fromLast=TRUE)) %>%
summarize(ship_no = paste0(unique(ship_no), collapse = ','))
A tibble: 4 x 2
Number ship_no
<int> <chr>
1 4355 10
2 4389 5,3
3 4432 1,2
4 4689 12
库(dplyr)
df%%>%分组依据(编号)%%>%
过滤器(重复(数字)|重复(数字,fromLast=TRUE))%>%
汇总(ship_no=paste0(唯一(ship_no),折叠=','))
一个tibble:4x2
船号
1 4355 10
2 4389 5,3
3 4432 1,2
4 4689 12
这里有一个使用数据的选项。表
library(data.table)
setDT(df)[, unique(.SD[.N > 1 & uniqueN(Number)==1]) , ship_no]
# ship_no Number
#1: 10 4355
#2: 12 4689
删除所有重复项这就是你的问题要求的?为了让其他人保持一致,您可以使用如何在上述代码中计数逗号分隔的发货编号
?您是否在寻找重复的数量?这又像是另一个问题了df%>%group\u by(Number)%>%summary(n=n\u distinct(ship\u no))
返回每个组的唯一值数。
library(data.table)
setDT(df)[, unique(.SD[.N > 1 & uniqueN(Number)==1]) , ship_no]
# ship_no Number
#1: 10 4355
#2: 12 4689