Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中仅在一个组中查找重复项_R - Fatal编程技术网

在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

我在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          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