当使用包含列表列的data.frame时,如何将多个列表列组合在一起,以便将其按行内容组合到单个列表列中?
这是一个两列的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"))
我们如何才能使第三列也是列表的列,但是每一行在其他两列中包含列表的内容呢?
例如,第一行将包含中的2个项目df[1, 1]$foo
和中的单个项目df[1,2]$bar
;也就是说,这三个项目在一个列表中foo1 foo1.1 bar
(第二行,第三行等等当然是相同的)
注意:我怀疑解决方案可能涉及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]>
或加上purrr
:
df %>%
mutate(foo_bar = map2(foo, bar, c))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句