我在R
中有以下数据框 Ship_No Number
1244 1
1244 2
1244 3
1244 1
1245 10
1245 10
1245 15
1245 20
1245 20
想要按Number
找到重复的ship_No
群组。我想要的数据框是
Ship_no Number
1244 1
1245 10,20
只有与逗号重复的数字才会分开。
答案 0 :(得分:3)
这是使用filter
和summarize
的解决方案:
library(dplyr)
x <- read.table(textConnection('Ship_No Number
1244 1
1244 2
1244 3
1244 1
1245 10
1245 10
1245 15
1245 20
1245 20'), header = TRUE)
x %>% group_by(Ship_No) %>%
filter(duplicated(Number)) %>%
summarize(Number = paste0(unique(Number), collapse = ','))
# # A tibble: 2 x 2
# Ship_No Number
# <int> <chr>
# 1 1244 1
# 2 1245 10,20
答案 1 :(得分:1)
我们可以使用data.table
library(data.table)
setDT(x)[duplicated(Number), .(Number = toString(unique(Number))) , Ship_No]
# Ship_No Number
#1: 1244 1
#2: 1245 10, 20