目的:根据文件1的第二列去检索是否在文件2的第二列和第三列之间,如果在;则输出文件1和文件2对应的行。
文件1:

文件2:

代码:
setwd('/Users/xx/xx/xx')
datA <- read.table('J01TEST.txt', header = F)
datRe1 <- datA
datB <- read.table('chr1.txt', header = F)
datRe2 <- datB
j <- 1
for (i in 1:nrow(datA)){
pos <- datA[i, 2]
tmp <- datB[, 2] <= pos&datB[, 3] >= pos
if(sum(tmp) > 0) {
Order <- which(tmp==1)
datRe1[j, ] <- datA[i, ]
datRe2[j,] <- datB[Order,]
j <- j +1
}
}
k <- j-1
Result <- cbind(datRe1[1:k, ], datRe2[1:k, ])
结果:

浙公网安备 33010602011771号