总结R

时间:2019-07-04 08:09:25

标签: r datatable spatial-data

我有两个数据表。

一种是房屋位置为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))

对于每个ID(在d8.small中),我需要一个新列,其中包含5000米以内的公司数量。

任何帮助将不胜感激!

0 个答案:

没有答案