У меня примерно 1000 точек в одном наборе данных "df1", координаты которых разбросаны по всей системе координат.В другом наборе данных "df2" у меня есть 27 точек, расположенных по всей системе координат.
Для каждой точки в df1 я хочу оценить ближайшее расстояние к точке в df2, расположенной в направлении 165-225 ° (по отношению к единичной окружности).
Как это можно сделать в R?
Если направление не имело значения, тогда я мог бы решить проблему с подходом из Поиск ближайшей точки из другого фрейма данных
В этом ответе предлагается определить два набора данных в качестве таблиц данных, а затем использовать следующую функцию:
dist <- function(a, b){
dt <- data.table((df2$x-a)^2+(df2$y-b)^2)
return(which.min(dt$V1))}
results <- df1[, j = list(Closest = dist(x, y)), by = 1:nrow(df1)]
Однако я не уверен, как объединить это с критериями направления.
Большое спасибо.
С уважением
Дитлев