Мы можем использовать separate_rows
для разделения второго столбца, затем arrange
по «Имени» и «Автомобиль» и paste
элементов, сгруппированных по «Имени»
library(dplyr)
library(tidyr)
library(stringr)
df1 %>%
separate_rows(Car) %>%
arrange(Name, Car) %>%
group_by(Name, zipcode) %>%
summarise(Car = str_c(Car, collapse="/"))
# A tibble: 4 x 3
# Groups: Name [4]
# Name zipcode Car
# <chr> <dbl> <chr>
#1 Frank 3456 Audi/BMW/VW
#2 Lilly 1333 Audi/BMW/Porsche/VW
#3 Marie 1416 Audi/BMW
#4 Peter 1213 Audi/BMW/VW
данных
df1 <- structure(list(Name = c("Peter", "Marie", "Frank", "Lilly"),
Car = c("BMW/VW/Audi", "Audi/BMW", "VW/BMW/Audi", "Audi/BMW/VW/Porsche"
), zipcode = c(1213, 1416, 3456, 1333)),
class = "data.frame", row.names = c(NA,
-4L))