r - 在 R 中:当我在 for 循环中时,如何将函数的列表输出存储在同一个列表中?
问题描述
我在数据框“q$Kegg”中有一个列,其中每一行都是函数“keggGet()”的一个条目,这个函数每次运行时最多有 10 个条目,然后我决定使用循环。我的数据框“q”看起来像:
col1 col2 Kegg col4 col5
data . ath:AT3G05640 . data
data . ath:AT1G53520 . data
data . ath:AT3G10870 . data
data . ath:AT5G02770 . data
这个函数的输出是一个列表。示例
query<-keggGet("ath:AT3G05640")
Rstudio中的输出图像
原始输出示例
> keggGet("ath:AT3G05640")
[[1]]
[[1]]$ENTRY
CDS
"AT3G05640"
[[1]]$DEFINITION
[1] "(RefSeq) Protein phosphatase 2C family protein"
[[1]]$ORGANISM
ath
"Arabidopsis thaliana (thale cress)"
[[1]]$POSITION
[1] "3"
[[1]]$MOTIF
[1] "Pfam: PP2C SpoIIE PP2C_2"
[[1]]$DBLINKS
[1] "NCBI-GeneID: 819731" "NCBI-ProteinID: NP_001326841" "MIPS: AT3G05640.1"
[4] "TAIR: AT3G05640" "UniProt: Q9M9W9"
[[1]]$AASEQ
A AAStringSet instance of length 1
width seq
[1] 358 MGHFSSMFNGIARSFSIKKAKNINSSKSYAKEATDEMAREAK...AAKRLVQQAVRAWNRKRRGIAMDDISAVCLFFHSSSSSPSL
[[1]]$NTSEQ
A DNAStringSet instance of length 1
width seq
[1] 1077 ATGGGACATTTCTCTTCCATGTTCAACGGTATAGCTAGATCC...GCCTCTTCTTCCATTCTTCATCGTCGTCGCCATCTCTATAG
如果我必须逐步执行此操作,它将如下所示:
query<-keggGet(c("ath:AT3G05640","ath:AT1G53520",.....))
#up to 10 entries each run for my 8000 entries and naming query2, query3,...
#because i don't know how to add the new results to "query" without overwriting.
然后我想创建一个循环,其中每个结果都存储在查询中,就好像我为我的所有条目运行函数一样(不能这样做,因为有 10 个限制)。直到现在我有:
for (k in q$Kegg)
{
query<-keggGet(k)
}
我如何将功能的每个输出添加到输出列表“查询”?
解决方案
您可以使用lapply
:
query <- lapply(q$Kegg, keggGet)
推荐阅读
- python - PyTorch 中的自定义权重初始化
- qtquick2 - RenderPass 在 Qt3D 中是如何工作的
- android - 在 textview 中显示结果 sqlite 查询
- django - How to set up django user permissions with one user having multiple permissions?
- solr - Solr 4 - 从 FieldsInfo 文件中删除字段
- entity-framework - 使用多个参数注册 DbContext
- excel - 180 天后自动删除单元格并移动行
- html - 隐藏 div onload 并使其他 onclick 消失
- java - 无法从配置类加载 netflix zuul 路由值
- apache - apache 似乎忽略了 CGI 脚本返回的“内部服务器错误”