объединение списка списков различной длины с фиксированным списком - PullRequest
0 голосов
/ 24 октября 2019

У меня есть данные, которые я хочу объединить, и список списков разной длины. Например,

 A<- c("AA-1234", "AA-1245", "AA-12445")

B<- c( c("1", "2", "34", "aab5"), c("a3", "3e"), c(""))

Таким образом, A и B имеют одинаковое количество строк, и первая строка в A является номером идентификатора, а элементы строк B являются соответствующими ответами. Вы можете видеть, что элементы для «AA-1234» имеют 4 элемента, а для «AA-1234» - 2 элемента. Я хотел бы иметь набор данных следующим образом:

   A         B
AA-1234      1
AA-1234      2
AA-1234      34
AA-1234      aab5
AA-1245      a3
AA-1245      3e
AA-12445      

Есть предложения?

 B<- list(c("1", "2", "34", "aab5"), c("a3", "3e"), c(""))

1 Ответ

0 голосов
/ 24 октября 2019
require(dplyr)

A<- c("AA-1234", "AA-1245", "AA-12445")

B<- c( list(c("1", "2", "34", "aab5")), list(c("a3", "3e")), list(""))




as_tibble(cbind(A,B)) %>%  
  mutate(A = unlist(A)) %>% 
  unnest(B)


# # A tibble: 7 x 2
#   A        B    
# <chr>    <chr>
# 1 AA-1234  1    
# 2 AA-1234  2    
# 3 AA-1234  34   
# 4 AA-1234  aab5 
# 5 AA-1245  a3   
# 6 AA-1245  3e   
# 7 AA-12445 ""  
...