У меня есть набор данных местоположений, и я пытаюсь найти расстояние до ближайшей зоны метро. Пример:
library(SpatialEpi)
df <- as.data.frame(cbind(c(100124, 100460, 100484, 100676, 100820, 2608640), c(2563, 4325, 637,330, 15278, 209880), c(31.56795, 33.60575, 34.20269, 32.87949, 33.24476, 33.52775), c(-85.25130, -86.94917, -87.17785, -87.73878, -86.76102, -86.79905), c(0,0,0,0,0,1)))
colnames(df) <- c("GEOID", "population", "latitude", "longitude", "is_metro")
Я создал матрицу расстояний, используя dist
df_dist <- as.matrix(dist(latlong2grid(matrix(c(df$longitude, df$latitude), ncol = 2, nrow=nrow(df)))))
Теперь я хотел бы, чтобы каждая строка возвращала расстояние до ближайшего значения где is_metro = 1. Так, например, ниже, в строке 1 самым близким значением является 5-й столбец, но я хочу вернуть 6-й столбец, потому что это столбец, в котором эквивалентная строка равна is_metro==1
. Для этого конкретного примера мне понадобятся все эти строки, чтобы показать соответствующее расстояние до строки 6, но в полном наборе данных у меня есть почти 20 тыс. Записей и много записей, где is_metro==1
, и мне нужна ближайшая.
Я надеюсь, что все имеет смысл. Где я могу начать?