Если вы предпочитаете tidyverse
, вы можете попробовать что-то вроде:
df %>%
group_by(code. = str_extract(as.character(code.), "^.{2}")) %>%
summarise(name. = paste(name., collapse = " OR "))
code. name.
<chr> <chr>
1 11 A B OR C D
2 21 C D OR G H
Он группирует по первым двум элементам из «кода».а затем объединяет «имя».столбец на основе этих элементов.
Или то же самое с использованием sub()
:
df %>%
group_by(code. = sub("^(.{2}).*", "\\1", as.character(code.))) %>%
summarise(name. = paste(name., collapse = " OR "))
Или то же самое с использованием substring()
:
df %>%
group_by(code. = substring(as.character(code.), 1, 2)) %>%
summarise(name. = paste(name., collapse = " OR "))