У меня есть фрейм данных:
name<-c('a','b','c','d','e')
type<-c('x','x','y','x','y')
chr<- c('ch1','ch1','ch1','ch2','ch2')
pos<- c(5000, 5100, 4999,5500,5100)
df<-data.frame(name,type, chr,pos)
![df](https://i.stack.imgur.com/LWTOB.png)
Я хотел бы go через каждую строку, и если тип НЕ равен, И chr IS равно, AND pos находится в пределах abs (100), затем создайте новый df с совпадениями (с новым столбцом имени совпадения). Поскольку вышеупомянутые df строки 1 и 3 будут соответствовать, и результат будет
![enter image description here](https://i.stack.imgur.com/fcG2o.png)
В идеале я не хочу взаимного соответствия и поэтому я хотел бы
![enter image description here](https://i.stack.imgur.com/Wk434.png)
Если проще, я могу разделить на две dfs в соответствии с типом.
Я пробовал вариант слияния и фильтрации (dplyr) но никуда не денусь.