解包数据帧列中的嵌入向量,并将值分散到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