У меня есть две таблицы данных. Один с местоположениями домов 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 метров.
Любая помощь будет принята с благодарностью!