Суммируйте рабочие места в радиусе в R - PullRequest
0 голосов
/ 04 июля 2019

У меня есть две таблицы данных. Один с местоположениями домов d8.small (восточная координата, северная координата, название улицы и идентификационный номер), а другой - с количеством рабочих мест STATENT (восточная координата, северная координата и количество рабочих мест) на гектаре.

d8.small[1:5, .(GKODE,GKODN,strasse, id)]
     GKODE   GKODN           strasse       id
1: 2608850 1262583      hauptstrasse      100
2: 2612952 1267232 ramsteinerstrasse 10000012
3: 2612952 1267232 ramsteinerstrasse 11776807
4: 2623360 1247413  mosermattstrasse 10000061
5: 2622938 1259411      im pfauenhof 10000223

STATENT[1:5, .(E_KOORD,N_KOORD,`workplaces total`)]
   E_KOORD N_KOORD workplaces total
1: 2486200 1111300                    2
2: 2486200 1111500                    3
3: 2486300 1111000                    13
4: 2486300 1111700                    156
5: 2486400 1111600                    87

Я попытался объединить две таблицы (по rbind), а затем я написал функцию ниже, которая, к сожалению, не работает:

test <- cbind(d8.small, STATENT[1:10,])
test 

d <- function(x) {
   if (x[1] ==  nrow(test)) return()
   ref <- test[(x[1]+1): nrow(test), ]
   z <- sqrt(sum((ref[,1:2, with=F] - x[6:7])^2))
   z <- data.table(Arbeitsstellen = x[25], dist_09 = z)
   return(z[z$dist_09<5000])
}

calc <- do.call(rbind,apply(test,1,d))

Мне нужен новый столбец для каждого идентификатора (в d8.small) с количеством компаний в пределах 5000 метров.

Любая помощь будет принята с благодарностью!

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