我有两个excel文件包含数据 第一个excel文件如下: frequency.xlsx
和第二个excel文件包含数据: interval.xlsx
intervalStart intervalEnd
1 10
11 20
31 40
51 70
现在我想编写一个R代码,它读取interval.xlsx文件的第一行,并在第一个文件(frequency.xlsx)中与最后一列中的每个值(即col 8)值进行比较,如果值为,则删除整行在intervalStart和intervalEnd之间。
对于前任 读取interval.xlsx的第一行,即 1和10 现在检查frequency.xlsx的最后一列中的每个值,如果值在 1和10之间,则删除整行,否则继续。 再次读取interval.xlsx的第二行并继续
所以请帮帮我
答案 0 :(得分:0)
Bioconductor包IRanges有许多功能可以使用范围:
require(IRanges)
a<-data.frame(start=c(1,11,31,51),
end=c(10,20,40,70))
aranges <- IRanges(a$start,a$end)
b <- data.frame(Col1=sample(LETTERS,75, replace=T),
Col2 = 1:75)
branges <- IRanges(b$Col2, b$Col2)
b[!overlapsAny(branges,aranges),]
# Col1 Col2
# 21 R 21
# 22 G 22
# 23 I 23
# 24 H 24
# 25 G 25
# 26 I 26
# 27 V 27
# 28 T 28
# 29 Z 29
# 30 E 30
# 41 H 41
# 42 J 42
# 43 A 43
# 44 N 44
# 45 H 45
# 46 P 46
# 47 T 47
# 48 L 48
# 49 P 49
# 50 U 50
# 71 U 71
# 72 B 72
# 73 K 73
# 74 R 74
# 75 Y 75