从for-loop-rentrez在数据帧中存储数据
我正在尝试使用从for-loop-rentrez在数据帧中存储数据,r,loops,rentrez,R,Loops,Rentrez,我正在尝试使用rentrez包查找包含PubMed条目的SNP列表。当我运行下面的代码时,结果是一个空数据帧。我认为我没有正确地编写数据帧 library(rentrez) term <- c('AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]', 'AKR1C2[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]') p.snps <- for
rentrez
包查找包含PubMed条目的SNP列表。当我运行下面的代码时,结果是一个空数据帧。我认为我没有正确地编写数据帧
library(rentrez)
term <- c('AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]',
'AKR1C2[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]')
p.snps <- for (i in seq_along(term)) {
entrez_search(db="SNP",
term = i,
usehistory = "y"
)
}
库(rentrez)
术语问题
有几个问题:
for
循环不返回值
entrez_search
的第二个参数应该是表示术语的字符串,但问题中的代码会传递一个数字
- 问题涉及数据帧,但返回数据帧的自然方式是一个
“esearch”
对象列表(尽管稍后可以进一步转换)
已更正的代码
试试这个:
p.snps <- vector(length = length(term), mode = "list")
for (i in seq_along(term)) {
p.snps[[i]] <- entrez_search(db = "SNP", term = term[i], history = "y")
}
names(p.snps) <- term
给予:
values ind
1 41314625 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
2 17344137 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
3 11548049 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
4 7097713 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
...etc...
如果您希望使用索引值(1,2,…)而不是查询字符串,请在堆栈
语句之前运行此语句:
names(ids) <- seq_along(ids)
问题
有几个问题:
for
循环不返回值
entrez_search
的第二个参数应该是表示术语的字符串,但问题中的代码会传递一个数字
- 问题涉及数据帧,但返回数据帧的自然方式是一个
“esearch”
对象列表(尽管稍后可以进一步转换)
已更正的代码
试试这个:
p.snps <- vector(length = length(term), mode = "list")
for (i in seq_along(term)) {
p.snps[[i]] <- entrez_search(db = "SNP", term = term[i], history = "y")
}
names(p.snps) <- term
给予:
values ind
1 41314625 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
2 17344137 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
3 11548049 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
4 7097713 AKR1C1[GENE] AND snp_pubmed[Filter] AND Homo sapiens[Organism]
...etc...
如果您希望使用索引值(1,2,…)而不是查询字符串,请在堆栈
语句之前运行此语句:
names(ids) <- seq_along(ids)
for
循环不存储结果。您可能会考虑< <代码> .pSN.<代码> 循环不存储结果。你可能会考虑<代码> P.SNP这正是我所要寻找的。我在想一个sapply
或lappy
方法可能是最好的。谢谢这正是我想要的。我在想一个sapply
或lappy
方法可能是最好的。谢谢