首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表中提取组件和元素,然后合并它们

从列表中提取组件和元素,然后合并它们
EN

Stack Overflow用户
提问于 2022-11-13 07:25:10
回答 1查看 24关注 0票数 0

我已经列出了一个列表,并且只想提取该列表中的某些组件和元素,并将其保存为一个数据框架。但是,当使用sapply函数时,它会为某些元素提取正确的数据,而对于其他元素则不会。

下面是一个可重复的例子:

#创建示例列表

代码语言:javascript
复制
library(KEGGREST)
chem_info <- keggGet(dbentries = c("C01546", "C05984"))

#从chem_info列表中提取我需要的内容。我需要提取化合物,配方和路径域。我遵循了这里列出的这一步的部分方向:How to extract elements from a list with mixed elements

代码语言:javascript
复制
a <- as.list(t(sapply(chem_info, '[', c(1,3))))
b <- sapply(chem_info, '[[', 7)
cbind(a, Pathway = b)

#我的结果&问题=有一个‘字符,3’,而不是列表的路径元素的列表。

入口公式通道

1,"C01546“"C5H4O3”字符,3

2,"C05984“"C4H8O3”“丙酸盐代谢”

我的目标是让每一个条目都列在路径元素下面,每个条目都列在路径栏下。例如,第一次进入,C01546有3种元素在途径下,糠醛降解,代谢途径,和微生物代谢在不同的环境。我需要这个列在通道栏下面。下面是我希望达到的目标的一个示例输出。

我的目标是:

入口公式通道

1,C01546 C5H4O3糠醛降解、代谢途径和微生物在不同环境中的代谢

2,C05984 C4H8O3“丙酸盐代谢”

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2022-11-13 08:26:06

这最后一行应该能行。在正确地与cbind()组合之前,您只需要折叠任何一个条目,其中任何条目都是向量而不是单个元素。

代码语言:javascript
复制
cbind(a, Pathway = lapply(b, function(x) paste(x, collapse = ", ")))
代码语言:javascript
复制
     ENTRY    FORMULA  Pathway                                                                                 
[1,] "C01546" "C5H4O3" "Furfural degradation, Metabolic pathways, Microbial metabolism in diverse environments"
[2,] "C05984" "C4H8O3" "Propanoate metabolism"          
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74419186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档