我有一个 R 数据框,其中包含一个表示染色体位置的数字向量和一个基因名称向量。我还有一个该染色体上有趣元素的起始位置向量。我想提取每个元素上方和下方的 3 个最接近基因的名称和位置,我想知道最有效的方法。
例如:
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