根据另一个数据框从数据框中提取行

时间:2020-06-04 14:11:38

标签: r time-series filtering subset datamatrix

我正在尝试根据另一个包含我感兴趣的基因列表的数据矩阵,从大型数据集中提取一组基因(行名)。我已经读到我应该使用filter和%in%命令,但是不确定如何正确编写它。

示例: 我的大型数据库:

Gene        Week1         Week 2.        Week 3
A.           20.           14.            5
B.           5.            10.            15
C.           2.            4.             6
D.           20.           18.            19

我的小型数据库:

Gene
A
C
D

我希望我的结果是:

Gene        Week1         Week 2.        Week 3
A.           20.           14.            5
C.           2.            4.             6
D.           20.           18.            19

有人可以帮忙吗?对于这个非常简单的问题,我深表歉意,也深表歉意:)

1 个答案:

答案 0 :(得分:2)

使用逻辑行索引:

large_database[large_database$Gene %in% unique(small_data_base$Gene), ]

说明:

large_database$Gene %in% unique(small_data_base$Gene)

检查large_database$Gene中的每个条目(即行)是否出现在unique(small_database$Gene)中,即Gene的列small_data_base中的唯一值列表,并返回布尔值向量(TRUE和FALSE的向量)。

然后我们可以将此向量用作行“索引”,以仅选择向量为TRUE的行(即large_database$Gene的值位于unique(small_database$Gene)