首页 > 解决方案 > 将不同长度的列表列表与固定列表相结合

问题描述

我有一个要合并的数据,其中包含长度不等的列表列表。例如

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

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

所以A和B的行数相等,A中的第一行是id号,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(""))

标签: rdataframeplyrtidyr

解决方案


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 ""  

推荐阅读