【发布时间】:2019-06-18 14:46:23
【问题描述】:
我有两个表达式集,我想将它们合并到一个名为 exprs.br.ov 的表达式集中,包括每个基因的所有样本的值(所有基因都不存在于两个集中)。
第一个是 exprs(br.samp),它包含 48107 行(基因)和 3 列(样本)。 第二个是 exprs(ov.samp),即 49576 行 6 列。
我已经尝试过(在我的笔记本电脑上需要几分钟):
exprs.br.ov <- merge(exprs(br.samp), exprs(ov.samp))
我可以发送完整的数据集,但这里是两个数据集各自的示例:
exprs(br.samp)[1000:1005,]
GSM1686435 GSM1686439 GSM1686443
ILMN_1652079 2.598251 2.691751 2.660744
ILMN_1652081 2.615129 2.750116 2.692110
ILMN_1652082 3.355115 3.349804 3.359563
ILMN_1652085 3.356552 3.293744 3.416394
ILMN_1652088 2.604641 2.634033 2.705018
ILMN_1652098 2.636708 2.681400 2.668621
exprs(ov.samp)[1:5,]
GSM780707 GSM780708 GSM780709 GSM780719 GSM780720 GSM780721
ILMN_1725881 5.844604 6.117963 5.894689 5.587485 5.808352 5.928565
ILMN_1910180 6.264897 5.767562 5.736104 6.449061 5.841978 5.651918
ILMN_1804174 5.568391 5.232546 5.788832 5.641904 5.392946 5.632815
ILMN_1796063 10.592653 10.549996 10.209368 10.702580 10.630577 10.485648
ILMN_1811966 6.183197 6.231567 6.173843 6.142019 6.120883 5.966730
我只想包含两个集合中都存在的基因,每个样本有 9 列。
merge() 函数的结果似乎只返回一个基因名称向量,而不是每个样本的表达值。
【问题讨论】:
-
使用的包名是什么?
-
我不知道 ExpressionSet 是什么,但如果你可以将它们做成数据框,你可以使用来自
dplyr的full_join()、left_join()或right_join() -
正如@ahmad 在他的回答中指出的那样,最好指定您加入的列。在这里,您的 id 被定义为 row.names 因此您的问题。在您的表达式上使用
dput之类的函数将使我们能够快速为您提供完整的答案。您可以在此处查找创建可重现示例的方法so_reproducible。
标签: r bioinformatics bioconductor