【发布时间】:2016-02-29 19:43:57
【问题描述】:
我正在使用二元运算符 %in% 对数据帧进行子集化(我从另一个 stackoverflow thread 得到这个想法),但是当我通过切换参数仔细检查结果时,我得到了不同的答案。我已经阅读了关于 match() 函数的 R 文档,似乎 match() 和 %in% 都不应该是方向相关的。我真的需要确切地了解正在发生的事情才能对我的结果充满信心。有人可以提供一些见解吗?
> filtered_ordGeneNames_proteinIDs <- ordGeneNames_ProteinIDs[ordGeneNames_ProteinIDs$V4 %in% ordDEGs$X, ];
> filtered2_ordGeneNames_proteinIDs <- ordDEGs[ordDEGs$X %in% ordGeneNames_ProteinIDs$V4, ];
> nrow(filtered_ordGeneNames_proteinIDs)
[1] 5767
> nrow(filtered2_ordGeneNames_proteinIDs)
[1] 5746
【问题讨论】:
-
你看
help("match")了吗? -
也许您正在寻找
intersect()? -
文档中让您认为
neither match() nor %in% should be directionally dependent的提示在哪里? -
非常简单。是的,是的。
%in%的第一个参数是您可用的表,在右侧,您提供要检查它们是否出现在同一个表中的值。