Есть ли способ создать матрицу в R только при выполнении условия? - PullRequest
0 голосов
/ 07 июля 2019

Я нашел функцию для поиска необходимой информации, но матрица слишком велика.

У меня есть набор данных ресторанов, и я хочу определить, находятся ли рестораны рядом друг с другом, используядолгота и широта.Я использовал функцию distHaversine, которая позволяет измерять расстояние и прекрасно работает с небольшими подмножествами:

rest_m <- cbind(restaurants$longitude, restaurants$latitude)
distance_m <- distm(rest_m, rest_m, fun = distHaversine)

Единственная проблема заключается в том, что набор данных состоит из 55 тыс. Строк, а матрица слишком велика для использования.

Сейчас я думаю сократить список ресторанов и рассчитать расстояние только для предприятий, находящихся в одном штате.В наборе данных есть столбец State.Есть ли способ создать матрицу только при выполнении этого условия (рестораны находятся в одном состоянии)?

Спасибо!

rest_m <- cbind(restaurants$longitude, restaurants$latitude)
distance_m <- distm(rest_m, rest_m, fun = distHaversine)

1 Ответ

0 голосов
/ 07 июля 2019

Так как вам нужно только найти рестораны в непосредственной близости друг от друга. Было бы лучше использовать что-то вроде кластеризации k-средних на столбцах долготы и широты с евклидовым расстоянием (рестораны в одном и том же кластере были бы тогда ближе друг к другу). Использование distHaversine является излишним для вашей постановки проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...