按r中的行名指定的条件函数



我是相对较新的R,我有一些问题,我想做的一个函数。我有一个表达式表,其中列是物种名称,行是基因id。

exptable:
SPECIES1 SPECIES2 SPECIES3 SPECIES4 SPECIES5 SPECIES6
GENE1     3        3        3        3        3        3
GENE2     2        1        1        5        5        5
GENE3     2        1        1        5        5        5
GENE4     2        1        1        5        5        5
GENE5     2        1        1        5        5        5
GENE6     2        1        1        5        5        5

我也有一个包含感兴趣的基因id的列表。现在我想在一定的条件下提取一些信息。其中一个例子是如果SPEC1和SPEC2都有GENE1>1和SPEC3 - SPEC6 <1那么基因名称应该粘贴在另一个文件

我在这里遇到的两个问题是1.我如何使用一个以generelist作为输入的for look ?我用一个名字做这件事没有问题:

z = "GENEID1"
grep(z,rownames(stage_g)) -> i
exptableB[i,] -> GOI3 
as.data.frame(GOI3) -> GOM3 

我怎么能做这样的事情与许多基因名称的列表

  1. 我应用一个条件没有问题。但是我在多个条件下都遇到了一些麻烦。

所以是的,基本上我想写一个循环函数,将多个条件应用于不同基因的表达数据,并将基因名称(rownames)写入一个列表,如果它们是真的…我希望我以一种可以理解的方式陈述了我的问题。如果您需要更多的信息,请告诉我。

%in%可以用于'矢量化'精确匹配;逻辑运算&,|可以帮助组合条件

geneids <- c("GENE1", "GENE6")
row_index_1 <- rownames(exptable) %in% geneids
row_index_2 <- exptable[, "SPECIES3"] - exptable[, "SPECIES6"] < 1
row_index <- row_index_1 & row_index_2
rownames(exptable)[row_index]

最新更新