Я хотел бы получить строки вокруг опорной линии при условии.
Например, к этой таблице:
t <- data.frame(
name = c("a", "b", "c", "d", "e", "x", "f", "g"),
reference = c( 0, 1, 0, 0, 0, 0, 1, 0 ),
start = c( 2, 10, 20, 30, 45, 51, 70, 80 ),
end = c( 8, 18, 26, 38, 50, 59, 75, 100 ) )
| name | reference | start | end |
| :--- | :-------- | :---- | :-- |
| a | 0 | 2 | 8 |
| b | 1 | 10 | 18 |
| c | 0 | 20 | 26 |
| d | 0 | 30 | 38 |
| e | 0 | 45 | 50 |
| x | 0 | 51 | 59 |
| f | 1 | 70 | 75 |
| g | 0 | 80 | 100 |
Если я хочу только записи на расстоянии 5 или меньше (выше или ниже). Это означает разницу между начальным столбцом текущей строки и конечным столбцом предыдущей или разницей между конечным столбцом текущей строки и начальным столбцом следующей. Таблицу следует распечатать так:
| name | reference | start | end |
| :--- | :-------- | :---- | :-- |
| a | 0 | 2 | 8 |
| b | 1 | 10 | 18 |
| c | 0 | 20 | 26 |
| d | 0 | 30 | 38 |
| f | 1 | 70 | 75 |
| g | 0 | 80 | 100 |
В этом примере я смог получить c
, потому что расстояние от b
меньше 5, это позволило c
получить также d
, потому что d
также меньше 5 от c
. Это связано с тем, что все соседние строки зависят от ссылки, поэтому ссылки b
и f
подобны привязкам к другим строкам.
Заранее спасибо.