1

我正在尝试根据另一个包含我感兴趣的基因列表的数据矩阵从我的大型数据集中提取一组基因(行名)。我读过我应该使用 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

有人可以帮忙吗?我真的很感激,我为这个相当简单的问题道歉:)

4

1 回答 1

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)ie 列中的唯一值列表中Genesmall_data_base并返回一个布尔向量(一个 TRUE 和 FALSE 的向量)。

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

于 2020-06-04T14:16:09.990 回答