这应该可以做到:
species_genes <- lapply(species, function(s) getBM(attributes = c("ensembl_gene_id",
"external_gene_name"),
filters = "biotype",
values = "protein_coding",
mart = get(paste0("ensembl_", s))))
说明:
这个
mart
中的参数
getBM
函数需要类的对象
Mart
而不是
string
class(ensembl_ggallus)
#output
[1] "Mart"
attr(,"package")
[1] "biomaRt"
通过使用
paste0("ensembl_", s)
您会得到一个字符串,例如:
"ensembl_hsapiens"
这个
base
作用
get
按名称在环境中搜索对象。
get("ensembl_hsapiens")
identical(get("ensembl_hsapiens"), ensembl_hsapiens)
#output
TRUE