运行 使用 R 中列表中的值的循环
Run a loop using values from a list in R
我是 R 编程的新手,我正在使用 BioMart 包来提取基因列表的基因旁系同源物。
使用下面的 'genes' 向量是否可以将每个值单独循环到 'getBM' 函数的值部分,然后将其输出添加到数据框中?
genes <- C("FGF1", "BRCA1", "FOXP2")
getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "external_gene_name",
values = , mart = ensembl_hsapiens)
下面是我一直在做的,使用基因向量作为值,但它给了我错误的数字,我知道原因。当我单独尝试基因时,值是正确的,这就是为什么我想循环这些值。
genes <- C("FGF1", "BRCA1", "FOXP2")
getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "external_gene_name",
values = c(genes), mart = ensembl_hsapiens)
试试
result <- lapply(genes,function(x){getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "ensembl_gene_id",
values = x, mart = ensembl_hsapiens)})
循环你的基因载体。结果将是每个值的结果列表
首先,您没有提供reproducible, minimal example;如果您提供自包含的最少代码、说明您尝试过的内容、失败的内容以及预期的结果,人们更有可能提供帮助。
除此之外,下面是一个基于您为 genes
提供的数据的最小示例。
# Load the necessary library
library(biomaRt);
# Your vector of query gene symbols
genes <- c("FGF1", "BRCA1", "FOXP2");
# The relevant BioMart database and dataset
mart <- useMart(
biomart = "ENSEMBL_MART_ENSEMBL",
dataset = "hsapiens_gene_ensembl");
# Extract attributes from mart for every entry in values
getBM(
attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "external_gene_name",
values = genes,
mart = mart);
# external_gene_name hsapiens_paralog_associated_gene_name
# 1 FGF1 FGF2
# 2 BRCA1
# 3 FOXP2 FOXP4
# 4 FOXP2 FOXP1
# 5 FOXP2 FOXP3
# 6 FOXP2 FOXO4
# 7 FOXP2 FOXO6
# 8 FOXP2 FOXO1
# 9 FOXP2 FOXO3
# 10 FOXP2 FOXM1
我是 R 编程的新手,我正在使用 BioMart 包来提取基因列表的基因旁系同源物。
使用下面的 'genes' 向量是否可以将每个值单独循环到 'getBM' 函数的值部分,然后将其输出添加到数据框中?
genes <- C("FGF1", "BRCA1", "FOXP2")
getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "external_gene_name",
values = , mart = ensembl_hsapiens)
下面是我一直在做的,使用基因向量作为值,但它给了我错误的数字,我知道原因。当我单独尝试基因时,值是正确的,这就是为什么我想循环这些值。
genes <- C("FGF1", "BRCA1", "FOXP2")
getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "external_gene_name",
values = c(genes), mart = ensembl_hsapiens)
试试
result <- lapply(genes,function(x){getBM(attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "ensembl_gene_id",
values = x, mart = ensembl_hsapiens)})
循环你的基因载体。结果将是每个值的结果列表
首先,您没有提供reproducible, minimal example;如果您提供自包含的最少代码、说明您尝试过的内容、失败的内容以及预期的结果,人们更有可能提供帮助。
除此之外,下面是一个基于您为 genes
提供的数据的最小示例。
# Load the necessary library
library(biomaRt);
# Your vector of query gene symbols
genes <- c("FGF1", "BRCA1", "FOXP2");
# The relevant BioMart database and dataset
mart <- useMart(
biomart = "ENSEMBL_MART_ENSEMBL",
dataset = "hsapiens_gene_ensembl");
# Extract attributes from mart for every entry in values
getBM(
attributes = c("external_gene_name", "hsapiens_paralog_associated_gene_name"),
filters = "external_gene_name",
values = genes,
mart = mart);
# external_gene_name hsapiens_paralog_associated_gene_name
# 1 FGF1 FGF2
# 2 BRCA1
# 3 FOXP2 FOXP4
# 4 FOXP2 FOXP1
# 5 FOXP2 FOXP3
# 6 FOXP2 FOXO4
# 7 FOXP2 FOXO6
# 8 FOXP2 FOXO1
# 9 FOXP2 FOXO3
# 10 FOXP2 FOXM1