我有两个数据框。一个名为“发现”就像是
probeID symbol is.TF entrezID
ILMN_1814092 AACSP1 FALSE 729522
ILMN_1668851 AADACL4 FALSE 343066
ILMN_1805104 ABAT FALSE 18
ILMN_2070570 ABCA10 FALSE 10349
ILMN_2232084 ABCA11P FALSE 79963
ILMN_1704579 ABCA13 FALSE 154664
ILMN_1722286 ABCA5 FALSE 23461
ILMN_1701551 ABCA6 FALSE 23460
ILMN_1743205 ABCA7 FALSE 10347
另一个名为“值”的人就像
probeID value
ILMN_1814092 1.0
ILMN_1668851 1.9
ILMN_1805104 1.8
ILMN_2070570 1.8
ILMN_2232084 1.5
ILMN_1704579 2.3
ILMN_1722286 2.6
ILMN_1701551 0.1
ILMN_1743205 5.5
两个数据帧在行“probeID”
方面重叠如何从“发现”中选择“probeID”出现在“值”中?
overlap <- discovery[values$probeID,]
它为我提供了一个数据框,所有值都是 NA
答案 0 :(得分:0)
如果您需要包含values
列的数据集,merge
是更好的方法。但是,如果您只需要获取显示discovery
的{{1}}的子集。以下作品。
probeID
overlap <- discovery[discovery$probeID %in% values$probeID,]
运算符基于匹配,因此我只选择%in%
匹配任何discovery$probeID
答案 1 :(得分:0)
只需merge(discovery, values, by.x = "probeID", by.y = "probeID")
简要说明,请参阅http://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html。
merge(x, y, by = intersect(names(x), names(y)),
by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
sort = TRUE, suffixes = c(".x",".y"),
incomparables = NULL, ...)
合并x
和y
,将两个数据框合并在一起。如果需要,您可以分别使用by.x
和by.y
指定应合并两个数据帧的列。如果列名称在x
和y
之间共享,则仅by=
就足够了。如果未指定by=
,则默认为names(x)
和names(y)
的交集,或两个数据框之间共享的列。