在R中将多个列表列合并为一个列表列?
使用包含列表列的data.frame时,如何组合多个列表列,以便将其行内容组合到单个列表列中 实例 这是一个两列数据框。两列都是列表列在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
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))