我试图从我的大型数据集中提取一组基因(行名),基于另一个数据矩阵,其中包含我感兴趣的基因列表。我读到过关于我应该使用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
谁能帮帮我?我真的很感激,并为这个相当简单的问题道歉:)
使用逻辑行索引。
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)