将列表元素附加到数据框列

cuc*_*bit 3 r

我有这个数据框:

       GO.ID Annotated Significant Expected P-value                   Term Ontology
1 GO:0000049         7           0     0.25  1.0000           tRNA binding       MF
2 GO:0000062         4           0     0.14  1.0000 fatty-acyl-CoA binding       MF
Run Code Online (Sandbox Code Playgroud)

我有这个清单:

$`GO:0000049`
[1] "Solyc02g090860.2" "Solyc03g119280.2" "Solyc05g056260.2" "Solyc06g048610.2" "Solyc07g008950.2" "Solyc08g015960.2"
[7] "Solyc10g007060.2"

$`GO:0000062`
[1] "Solyc01g099350.2" "Solyc03g082910.2" "Solyc04g078090.2" "Solyc08g075690.2"
Run Code Online (Sandbox Code Playgroud)

有没有办法将列表的元素打印到数据框的新列?两种结构中的顺序相同,我的意思是,GO.ID 列按列表元素排序。我正在寻找类似 paste bash 命令的东西。

我已经尝试lapply将列表导出到文件中。然后write.table使用数据帧,然后paste在 bash 中命令。但我想知道是否有办法在 R 中完成这种工作。

是的,我是 R 世界的新手。

编辑:

这是我想要的输出:

       GO.ID Annotated Significant Expected P-value                   Term Ontology           Gene_ID
1 GO:0000049         7           0     0.25  1.0000           tRNA binding       MF           Solyc02g090860.2,Solyc03g119280.2,Solyc05g056260.2,Solyc06g048610.2,Solyc07g008950.2,Solyc08g015960.2,Solyc10g007060.2
2 GO:0000062         4           0     0.14  1.0000 fatty-acyl-CoA binding       MF           Solyc01g099350.2,Solyc03g082910.2,Solyc04g078090.2,Solyc08g075690.2 
Run Code Online (Sandbox Code Playgroud)

Col*_*vel 5

如果df是您的 data.frame 和lst您的列表,您可以执行以下操作:

transform(df, Gene_ID=sapply(lst, paste0, collapse=',')[GO.ID])
Run Code Online (Sandbox Code Playgroud)