在R中将多个列表列合并为一个列表列?

在R中将多个列表列合并为一个列表列?,r,dataframe,dplyr,purrr,R,Dataframe,Dplyr,Purrr,使用包含列表列的data.frame时,如何组合多个列表列,以便将其行内容组合到单个列表列中 实例 这是一个两列数据框。两列都是列表列 df <- structure(list(foo = list(c("foo1", "foo1.1"), "foo2", "foo3"), bar = list("bar1", "bar2", "bar3&q

使用包含列表列的data.frame时,如何组合多个列表列,以便将其行内容组合到单个列表列中

实例 这是一个两列数据框。两列都是列表列

df <- structure(list(foo = list(c("foo1", "foo1.1"), "foo2", 
    "foo3"), bar = list("bar1", 
    "bar2", "bar3")), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame"))

我们如何制作第三列,它也是列表的一列,但每行包含其他两列中列表的内容

e、 g.第一行将包含df[1,1]$foo中的2个项目和df[1,2]$bar中的单个项目;也就是说,一个列表foo1 foo1.1bar中的这三个项目,当然第二行、第三行也是如此,依此类推

注意:我怀疑解决方案可能涉及purrr,但我不确定使用dplyr时,您可以:

df %>%
 mutate(foo_bar = mapply(c, foo, bar))

  foo       bar       foo_bar  
  <list>    <list>    <list>   
1 <chr [2]> <chr [1]> <chr [3]>
2 <chr [1]> <chr [1]> <chr [2]>
3 <chr [1]> <chr [1]> <chr [2]>
使用dplyr,您可以执行以下操作:

df %>%
 mutate(foo_bar = mapply(c, foo, bar))

  foo       bar       foo_bar  
  <list>    <list>    <list>   
1 <chr [2]> <chr [1]> <chr [3]>
2 <chr [1]> <chr [1]> <chr [2]>
3 <chr [1]> <chr [1]> <chr [2]>
在base R中,我们可以使用Map

在base R中,我们可以使用Map

df$foo_bar <-  do.call(Map, c(f = c, df))