解包数据帧列中的嵌入向量,并将值分散到R中的多行

解包数据帧列中的嵌入向量,并将值分散到R中的多行,r,dataframe,nested-datalist,R,Dataframe,Nested Datalist,我有一个由这段代码创建的数据帧: df <- dplyr::data_frame( id = c(1, 2, 3), name = c('Jack', 'Peter', 'Sam'), role = list( c('Manager', 'Analyst'), c('Analyst', 'Advisor'), c('Analyst') ), fav_color = list( c('Wh

我有一个由这段代码创建的数据帧:

df <- dplyr::data_frame(
    id = c(1, 2, 3),
    name = c('Jack', 'Peter', 'Sam'),
    role = list(
        c('Manager', 'Analyst'),
        c('Analyst', 'Advisor'),
        c('Analyst')
    ),
    fav_color = list(
        c('White', 'Blue'),
        c('Black', 'Red'),
        c('White', 'Red')
    )
)
我尝试了
purr
tidyjson
,但仍然没有走多远。
有人给我一些建议吗?非常感谢。

您可以使用
dplyr
轻松完成此操作

df %>% rowwise %>% do(expand.grid(., stringsAsFactors=FALSE))
#       id  name    role fav_color
# *  <dbl> <chr>   <chr>     <chr>
# 1      1  Jack Manager     White
# 2      1  Jack Analyst     White
# 3      1  Jack Manager      Blue
# 4      1  Jack Analyst      Blue
# 5      2 Peter Analyst     Black
# 6      2 Peter Advisor     Black
# 7      2 Peter Analyst       Red
# 8      2 Peter Advisor       Red
# 9      3   Sam Analyst     White
# 10     3   Sam Analyst       Red
df%>%rowwise%>%do(expand.grid(,stringsAsFactors=FALSE))
#id名称角色fav_颜色
# *           
#1杰克·怀特经理
#2.1杰克·怀特
#3.1杰克经理蓝
#4.1杰克分析员蓝
#5.2彼得·布莱克
#6.2彼得·布莱克顾问
#7.2彼得·雷德
#8.2彼得顾问红
#9.3萨姆·怀特分析员
#10 3 Sam分析师红色
在这里,我们使用基本函数
expand.grid
查找列表值的所有组合

df %>% rowwise %>% do(expand.grid(., stringsAsFactors=FALSE))
#       id  name    role fav_color
# *  <dbl> <chr>   <chr>     <chr>
# 1      1  Jack Manager     White
# 2      1  Jack Analyst     White
# 3      1  Jack Manager      Blue
# 4      1  Jack Analyst      Blue
# 5      2 Peter Analyst     Black
# 6      2 Peter Advisor     Black
# 7      2 Peter Analyst       Red
# 8      2 Peter Advisor       Red
# 9      3   Sam Analyst     White
# 10     3   Sam Analyst       Red