Предположим, что это ваши данные в примере
example = data.frame(ID = c(1,2,3),FO = c("Jim","Jim","Jim"),A = c("Y:401","Z:506","L:405"),
B = c("T:402","X:501","A:"),
C = c("Y:112","L:506",":908"),stringsAsFactors = F)
> example
ID FO A B C
1 1 Jim Y:401 T:402 Y:112
2 2 Jim Z:506 X:501 L:506
3 3 Jim L:405 A: :908
А простой способ разделения нескольких столбцов в фрейме данных показан ниже
library(dplyr)
library(tidyverse)
example %>%
gather(key, value, -ID,-FO) %>%
separate_rows(value, sep = ":") %>%
group_by(key, ID) %>%
mutate(key2 = paste0(key, "_", seq_along(key))) %>%
ungroup() %>%
select(-key) %>%
spread(key2, value)
# A tibble: 3 x 8
ID FO A_1 A_2 B_1 B_2 C_1 C_2
<dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 1 Jim Y 401 T 402 Y 112
2 2 Jim Z 506 X 501 L 506
3 3 Jim L 405 A "" "" 908
Надеюсь, это поможетПожалуйста, добавьте пример данных, прежде чем запрашивать это.Спасибо