根据一列数据判断是否在一个区间,进行输出。

Posted on 2019-01-09 15:26  SuperDanLin  阅读(403)  评论(0)    收藏  举报

目的:根据文件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, ])

 

结果: