我在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
Number ship_no
4355 10
4689 12
我怎样才能在R?
中这样做答案 0 :(得分:1)
在这种情况下,您可以这样做:
df[duplicated(df),]
Number ship_no
8 4355 10
10 4689 12
因为
> duplicated(df)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE
如果同一行可能有两个以上的重复项,可能将它包装在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
答案 1 :(得分:0)
以下是使用data.table
library(data.table)
setDT(df)[, unique(.SD[.N > 1 & uniqueN(Number)==1]) , ship_no]
# ship_no Number
#1: 10 4355
#2: 12 4689