有没有办法根据另一个数据帧的列从数据帧中删除行?
例如,数据框 1:
Gene CHROM POS REF ALT N_INFORMATIVE Test Beta SE
AAA 1 15211 T G 1481 1:15211 -0.0599805 0.112445
LLL 1 762061 T A 1481 1:762061 0.2144100 0.427085
CCC 1 762109 C T 1481 1:762109 0.2847510 0.204255
DDD 1 762273 G A 1481 1:762273 0.0443946 0.119924
数据框 2(仅 1 列):
Genes
AAA
BBB
CCC
DDD
EEE
FFF
在这种情况下,我想扫描 Dataframe 1 第 1 列以查找与 Dataframe 2 的任何匹配项,并删除匹配的行。
它们需要完全匹配,结果将如下所示:
Gene CHROM POS REF ALT N_INFORMATIVE Test Beta SE
LLL 1 762061 T A 1481 1:762061 0.2144100 0.427085
我尝试过这种方法的变体,但没有成功:
NewDataframe <-!(Dataframe1$Gene==Dataframe2$Genes)
谢谢阅读。
Use %in%
以确定第一个数据帧中的哪些元素不包含在第二个数据帧中,然后将所得逻辑向量传递到第一个数据帧以进行子集化。
dat1 <- data.frame(id = LETTERS[1:10], stringsAsFactors = FALSE)
dat2 <- data.frame(id = c("B", "D"), stringsAsFactors = FALSE)
dat1[!dat1$id %in% dat2$id, , drop = FALSE]
# id
# 1 A
# 3 C
# 5 E
# 6 F
# 7 G
# 8 H
# 9 I
# 10 J
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)