Создание матрицы, содержащей все комбинации смежных районов в R - PullRequest
0 голосов
/ 18 марта 2020

У меня есть географические данные для 1032 избирательных участков, расположенных в 123 избирательных округах.

В целях перераспределения мне нужно создать матрицу с каждым разделением 1032 избирательных участков в 123 смежных избирательных округах.

ОЖИДАЕМЫЙ ВЫХОД:

Выходными данными должна быть матрица с 1032 строками, где каждый столбец представляет различную комбинацию назначений (числа от 1 до 123) для этих участков.

Очевидно, что многие из этих комбинаций нереалистичны c (например: районы, сделанные из одного единственного участка), но мне нужно создать матрицу со всеми возможными комбинациями смежных участков .

МОИ ДАННЫЕ (ПРИМЕР С 5 ЧАСТЯМИ И 3 РАЙОНАМИ):

  1. У меня есть шейп-файлы и центроиды для каждого участка (может не пригодиться для этой цели , но на всякий случай):
centroids <- data.frame(precinct=c(1,2,3,4,5),
                        lon=c(52.46795,52.40980,52.48036,52.41012,52.49236),
                        lat=c(13.32068,13.39792,13.34562,13.39955,13.35582))
У меня также есть список смежности для каждого района:
adjlist_blocs <- list(c(2,3,4),
                      c(1,4),
                      c(1,4,5),
                      c(1,2,3,5),
                      c(3,4))

adjlist_blocs[[1]] # Where [[1]] refers to precinct number 1
[1] 2 3 4 # This means precinct number 1 is adjacent to precincts number 2, 3 and 4

adjlist_blocs[[2]]
[1] 1 4

adjlist_blocs[[3]]
[1] 1 4 5

adjlist_blocs[[4]]
[1] 1 2 3 5

adjlist_blocs[[5]]
[1] 3 4

Таким образом, в этом примере на выходе будет матрица с 5 строками (для 5 участков) и столбцами, охватывающими все возможные комбинации присвоений избирательных округов (например, 3 избирательных округа) для соседних избирательных участков.

Что-то вроде:

|---------------------|------------------|
|     Precinct Nb     |   District Nb    |
|---------------------|------------------|
|          1          |         1        |
|---------------------|------------------|
|          2          |         1        |
|---------------------|------------------|
|          3          |         2        |
|---------------------|------------------|
|          4          |         2        |
|---------------------|------------------|
|          5          |         3        |
|---------------------|------------------|

Это будет означать, что избирательные участки 1 и 2 находятся в избирательном округе № 1, избирательные участки 3 и 4 находятся в избирательном округе № 2, и этот округ № 3 состоит только из участка № 5. Это только одна из всех возможных комбинаций для этих избирательных участков при наличии смежности.

Как создать матрицу со всеми возможными комбинациями соседних районов? Может ли R иметь дело с очень большим количеством комбинаций, которые будут сгенерированы в первую очередь (для 1032 участков в 123 районах)? Спасибо за любую помощь, вы можете предоставить!

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