我有两个数据框,df1
和df2
。
df1:
contig position tumor_f t_ref_count t_alt_count
1 14599 0.000000 1 0
1 14653 0.400000 3 2
1 14907 0.333333 6 3
1 14930 0.363636 7 4
DF2:
contig position
1 14599
1 14653
我想从df1中删除带有匹配重叠群的行,df2中的位置值。
答案 0 :(得分:1)
这是一种方法。我相信还有其他解决方案,
conpos_del <- with(df2, interaction(contig,position,drop=T))
subset(df1, !interaction(contig,position,drop=T) %in% conpos_del)
答案 1 :(得分:1)
它不漂亮,但它有效
df1[!paste(df1$contig, df1$position) %in% paste(df2$contig, df2$position),]
答案 2 :(得分:0)
您可以将match()
函数与否定子集一起使用:
df1 <- data.frame(contig = c(1,1,1,1), position = c(14599, 14653,
14907, 14930), other = c(1,2,6,7))
df2 <- data.frame(contig = c(1,1), position = c(14599, 14653))
df1[-na.omit(match(df1$position, df2$position)), ]
答案 3 :(得分:0)
df1[ ! with(df1, interaction(contig, position) %in%
with(df2, unique(interaction(contig , position))) , ]