【发布时间】:2015-01-29 15:08:55
【问题描述】:
df <- data.frame(
exp=c(1,1,2,2),
name=c("gene1", "gene2", "gene1", "gene2"),
value=c(1,1,3,-1)
)
在尝试习惯 dplyr 和 reshape2时,我偶然发现了一种基于多个条件选择行的“简单”方法。如果我想在实验 1 中拥有那些具有valueabove 0 的基因(namevariable)(exp== 1)并且同时在实验 2 中拥有valuebelow 0;在 df 这将是“gene2”。当然必须有很多方法,例如每组条件(exp==1 & value > 0, and exp==2 and value
library(dplyr)
inner_join(filter(df,exp == 1 & value > 0),filter(df,exp == 2 & value < 0), by= c("name"="name"))[[1]]
虽然这可行,但它看起来很不公平,我觉得这种条件过滤位于reshape2 和dplyr 的核心,但不知道如何做到这一点。有人可以在这里启发我吗?
【问题讨论】:
标签: r conditional filtering dplyr reshape2