【发布时间】:2018-10-17 17:45:35
【问题描述】:
我正在寻找数据集中的差异表达基因。在使用我的函数确定倍数变化后,我得到一个返回基因名称和倍数变化的向量,如下所示:
df1
[,1]
gene1074 1.1135131
gene22491 1.0668137
gene15416 0.9840414
gene18645 1.1101060
gene4068 1.0055899
gene19043 1.1463878
我想寻找任何变化大于 2 倍的东西,所以我执行以下操作:
df2 <- subset(df1 >= 2)
返回以下内容:
head(df2)
[,1]
gene1074 FALSE
gene22491 FALSE
gene15416 FALSE
gene18645 FALSE
gene4068 FALSE
gene19043 FALSE
这不是我想要的。
我尝试了另一种子集方法:
df2 <- df1[df1 >= 2]
返回:
head(df2)
[1] 4.191129 127.309557 2.788121 2.090916 11.382345 2.186330
现在是超过 2 的值,但我丢失了伴随它们而来的基因名称。
我将如何对我的数据进行子集化,以便它以以下格式返回:
head(df2)
[,1]
genex 4.191129
geney 127.309557
genez 2.788121
genea 2.090916
geneb 11.382345
或者至少近似于我被赋予基因的格式及其对应的倍数变化值
【问题讨论】:
-
试试
df1[df1 >= 2, , drop = FALSE] -
好的做法是与 dput() 共享数据。您分享的内容看起来像矩阵,而不是向量。
标签: r matrix subset logical-operators