R 将长度不等的多级嵌套列表转换为数据帧
我有这样一个列表(biclqiues()的输出):R 将长度不等的多级嵌套列表转换为数据帧,r,list,R,List,我有这样一个列表(biclqiues()的输出): A这是一个基本解决方案lappy循环三个biclique元素,然后使用[提取列表的左、右部分。stack将lappy()结果简化为一个漂亮的数据框: left_df <- stack(lapply(A, `[[`, 'left')) left_df # values ind #1 EVELYN biclique1 #2 LAURA biclique1 #3 BRENDA biclique1 #4 EV
A这是一个基本解决方案lappy
循环三个biclique
元素,然后使用[
提取列表的左、右部分。stack
将lappy()
结果简化为一个漂亮的数据框:
left_df <- stack(lapply(A, `[[`, 'left'))
left_df
# values ind
#1 EVELYN biclique1
#2 LAURA biclique1
#3 BRENDA biclique1
#4 EVELYN biclique2
#5 LAURA biclique2
#6 THERESA biclique2
#7 EVELYN biclique3
#8 LAURA biclique3
#9 THERESA biclique3
#10 BRENDA biclique3
#11 FRANCES biclique3
left_df[left_df$values == 'EVELYN', ]
# values ind
#1 EVELYN biclique1
#4 EVELYN biclique2
#7 EVELYN biclique3
# and your direct question - this is base but there are simpler answers in dplyr and data.table:
unique(left_df[left_df$ind %in% left_df[left_df$values == 'EVELYN', 'ind'], 'values'])
#"EVELYN" "LAURA" "BRENDA" "THERESA" "FRANCES"
left\u通过发布dput(list\u name)
使此问题可重复。同时发布相同的预期输出。@Wendy您希望数据框具有什么结构?您可以发布一个示例吗
left_df <- stack(lapply(A, `[[`, 'left'))
left_df
# values ind
#1 EVELYN biclique1
#2 LAURA biclique1
#3 BRENDA biclique1
#4 EVELYN biclique2
#5 LAURA biclique2
#6 THERESA biclique2
#7 EVELYN biclique3
#8 LAURA biclique3
#9 THERESA biclique3
#10 BRENDA biclique3
#11 FRANCES biclique3
left_df[left_df$values == 'EVELYN', ]
# values ind
#1 EVELYN biclique1
#4 EVELYN biclique2
#7 EVELYN biclique3
# and your direct question - this is base but there are simpler answers in dplyr and data.table:
unique(left_df[left_df$ind %in% left_df[left_df$values == 'EVELYN', 'ind'], 'values'])
#"EVELYN" "LAURA" "BRENDA" "THERESA" "FRANCES"
right_df <- stack(lapply(A, `[[`, 'right'))
right_df
# values ind
#1 1 biclique1
#2 3 biclique1
#3 5 biclique1
#4 6 biclique1
#5 8 biclique1
#6 2 biclique2
#7 3 biclique2
#8 5 biclique2
#9 6 biclique2
#10 8 biclique2
#11 3 biclique3
#12 5 biclique3
#13 6 biclique3
#14 8 biclique3