Я вычислил матрицу расстояний между участками древних и недавних лесов в PostgresSQL благодаря следующему коду:
CREATE TABLE MatDist as (
SELECT
a.id a,
b.id b ,
st_distance(a.geom, b.geom) dist
FROM public.bvi_foret a, public.bvi_foret b
WHERE a.id != b.id AND a.ANC_FOR != b.ANC_FOR
)
, и он отлично работает.
Я хочу сейчас выбрать5 пар древних лесов (а) / недавний лес (б) представляют минимальное расстояние между ними.
Итак, я начал работать с R, и я могу найти уникальную пару, представляющую минимальное расстояние, благодаря следующемукод:
DT <- data.table(df)
DT[ , .SD[which.min(dist)], by = a]
Но как мне вычислить 5 первых пар?Это, вероятно, легко, с циклом for или функцией apply в R, но я не могу его найти ...
Заранее спасибо за ваши ответы.