Объединение по диапазону в R -Применение циклов

Я разместил вопрос здесь:Matched Range Merge в R о слиянии двух файлов на основе числа в одном файле, попадающего в диапазон во втором файле. До сих пор мне не удавалось собрать код для этого. Проблема, с которой я сталкиваюсь, заключается в том, что код, который я использую, сравнивает файлы построчно. Это проблема, потому что 1. )Один файл намного длиннее другого и 2. )Мне нужно, чтобы строки в более коротком файле сканировались через каждую пару диапазонов в более длинном файле -, а не только диапазон в той же строке.

Я работал с функциями, опубликованными в исходном вопросе, и мне кажется, что должен быть способ применить его к более общему циклу, который сравнивает каждую строку в первом файле с каждой строкой во втором файле, но я не т понял это еще. Если у кого-то есть какие-либо предложения, я был бы признателен.

****ОТРЕДАКТИРОВАНО.

Природа данных такова :. Каждый диапазон не обязательно уникален, хотя большинство из них таковы. Они также неодинаковы по размеру, и некоторые полностью попадают в другие. Таким образом, findIntervalвыдает ошибку, поскольку диапазоны нельзя отсортировать, чтобы они попадали в «не -убывающий» порядок.

Вот первые 6 строк каждого фрейма данных:

file1test <- data.frame(SNP=c("rs2343", "rs211", "rs754", "rs854", "rs343", "rs626"), BP=c(860269, 369640, 861822, 367934, 706940, 717244))


file2 <- data.frame(Gene=c("E613", "E92", "E49", "E3543", "E11", "E233"), BP_start=c(367640, 621059, 721320, 860260, 861322, 879584), BP_end = c(368634, 622053, 722513, 879955, 879533, 894689))

Итак, как видите, диапазон на 5-й строке лежит в диапазоне на 4-й строке, и два SNP из первого файла попадают в диапазон на 4-й строке, но только один попадает в диапазон на второй строке.

В первом файле, содержащем SNP, всего ~400 строк. Однако второй файл, содержащий диапазоны, имеет размер около 20 КБ.То, что я хотел бы получить в качестве вывода, представляет собой кадр данных, содержащий строки из первого файла (SNP )с BP, которые попадают в диапазон BP во втором файле. Если SNP попадает в два диапазона, то он появляется дважды и т. д.

5
задан Community 23 May 2017 в 12:34
поделиться