在列表中还原分割效果

use*_*782 5 r

我有一个列表,我想将其转换为带有两列的data.frame.问题是列表元素的长度不相等,这是我的数据的外观示例:

my.list

$A1CF
 [1] "A1CF"    "APOBEC1" "CUGBP2"  "KHSRP"   "SYNCRIP" "TNPO2"  

$A2LD1
[1] "A2LD1"   "PRPSAP2" "RPL15"   "TANC1"  

$A2M
[1] "A2M"      "ADAM19"   "ADAMTS1"  "AMBP"     "ANXA6"    "APOE"
Run Code Online (Sandbox Code Playgroud)

此列表来自以前的data.frame:

my.list <- split(df$V2, df$V1) 

df
      V1      V2
1   A1BG    A1BG
2   A1BG  CRISP3
3   A1CF    A1CF
4   A1CF APOBEC1
5   A1CF  CUGBP2
6   A1CF   KHSRP
7   A1CF SYNCRIP
8   A1CF   TNPO2
9  A2LD1   A2LD1
10 A2LD1 PRPSAP2
11 A2LD1   RPL15
12 A2LD1   TANC1
13   A2M     A2M
14   A2M  ADAM19
15   A2M ADAMTS1
16   A2M    AMBP
17   A2M   ANXA6
18   A2M    APOE
Run Code Online (Sandbox Code Playgroud)

其中删除了与AB1G相对应的元素.我想恢复分割效果以获得相同的结构:

new.df
A1CF    A1CF
A1CF APOBEC1
A1CF  CUGBP2
A1CF   KHSRP
A1CF SYNCRIP
A1CF   TNPO2
A2LD1   A2LD1
A2LD1 PRPSAP2
A2LD1   RPL15
A2LD1   TANC1
A2M     A2M
A2M  ADAM19
A2M ADAMTS1
A2M    AMBP
A2M   ANXA6
A2M    APOE
Run Code Online (Sandbox Code Playgroud)

我尝试过:df.new <- do.call(rbind, my.list)但显然它没有用.

非常感谢

bap*_*ste 5

使用这些虚拟数据,

ll <- list(a = letters[3:6],
           b = LETTERS[1:10],
           c = letters[1:2])

stack(ll)
Run Code Online (Sandbox Code Playgroud)

要么

reshape2::melt(ll, id=1)
Run Code Online (Sandbox Code Playgroud)

要么

plyr::ldply(ll, cbind)
Run Code Online (Sandbox Code Playgroud)

应该给你大致正确的格式

  • 你意识到,如果没有在你的肩膀上看着你的电脑屏幕,我就无法回答这个问题.如果您遇到新问题,请发布一个完整且极简的可重现示例作为新问题. (6认同)