У меня есть кадр данных R с вектором чисел, представляющих положения вдоль хромосомы и вектора имен генов. У меня также есть вектор стартовых позиций интересных элементов на этой хромосоме. Я хотел бы извлечь имена и позиции из трех ближайших генов как над, так и под каждым элементом, и мне интересно, как это сделать.Эффективно найти смежные значения в векторе
Например:
genes <- data.frame("geneStart"=sort(sample(500,10)), "geneName"=sample(LETTERS,10))
genes
geneStart geneName
1 66 X
2 158 U
3 262 N
4 385 D
5 387 H
6 418 Z
7 464 J
8 469 Y
9 475 L
10 491 I
Я хочу, чтобы в конечном итоге с помощью функции, давайте называть его getAdjacent
, например, так:
getAdjacent(280)
[1] "X" "U" "N" "D" "H" "Z"
getAdjacent(479)
[1] "J" "Y" "L" "I" NA NA
Когда вы говорите 3 ближе, вы имеете в виду ген, который содержит элемент, то либо 3 выше и 2 ниже, или наоборот? Вы решаете, основываясь на длинах генов? –