R dataframe

时间:2017-07-20 16:22:02

标签: r dataframe filter range

使用示例编辑**

gene    pvalue    log2FoldChange
a        1         -1.5
b        0.01      -2
c        0.004      1.4

我有一个像这样的数据框^^

我想为pvalue指定一个截止值,并为log2FoldChange指定一个范围,我想要这些值。 所以我想要一个log2FoldChange> 1或者< -1并且p值为< 0.05的那些 我试过了:

res <- res[res$padj < 0.05 & res$log2FoldChange > 1 & res$log2FoldChange < -1,] 
res <- res[complete.cases(res), ]

但这不起作用!给了我一个名为res的空数据框。

2 个答案:

答案 0 :(得分:1)

res$log2FoldChange > 1 & res$log2FoldChange < -1是不可能的。因此,返回空集。如果你想要一个p值截止值,而另一个变量范围之外的值可能就是你真正的意思如下。

inx1 <- res$padj < 0.05 & res$log2FoldChange > 1
inx2 <- res$padj < 0.05 & res$log2FoldChange < -1

res <- res[inx1 | inx2, ]
res <- res[complete.cases(res), ]

显然,这是完整的未经测试,因为您没有发布任何数据。

答案 1 :(得分:0)

你可以试试这个(我假设你希望log2FoldChange位于R - (-1,1)区间

res[which(res$padj < 0.05 & (res$log2FoldChange > 1 || res$log2FoldChange< -1)),]