小编dmc*_*mcd的帖子

R中计算距离集的大数据方法?

问题:我们需要一种大数据方法来计算点之间的距离。我们用五个观察数据框概述了我们想要在下面做什么。然而,当行数变大(> 100 万)时,这种特定方法是不可行的。过去,我们使用 SAS 进行此类分析,但如果可能的话,我们更喜欢使用 R。(注意:我不会展示代码,因为虽然我概述了一种在下面的较小数据集上执行此操作的方法,但这基本上是一种不可能用于我们规模的数据的方法。)

我们从商店的数据帧开始,每个商店都有纬度和经度(尽管这不是空间文件,我们也不想使用空间文件)。

# you can think of x and y in this example as Cartesian coordinates
stores <- data.frame(id = 1:5,
                     x = c(1, 0, 1, 2, 0),
                     y = c(1, 2, 0, 2, 0))

stores
  id x y
1  1 1 1
2  2 0 2
3  3 1 0
4  4 2 2
5  5 0 0
Run Code Online (Sandbox Code Playgroud)

对于每个商店,我们想知道 x 距离内的商店数量。在小数据框中,这很简单。创建所有坐标的另一个数据框,合并回来,计算距离,如果距离小于 x,则创建一个指标,并将指标相加(商店本身的距离为 0,减去 1)。这将产生如下所示的数据集:

   id x y  s1.dist  s2.dist  s3.dist  s4.dist  s5.dist
1:  1 …
Run Code Online (Sandbox Code Playgroud)

r matrix coordinates bigdata dataframe

6
推荐指数
1
解决办法
633
查看次数

标签 统计

bigdata ×1

coordinates ×1

dataframe ×1

matrix ×1

r ×1