Php 如何加速这些R计算?

Php 如何加速这些R计算?,php,r,algorithm,performance,optimization,Php,R,Algorithm,Performance,Optimization,我必须使用X,Y和Z坐标来创建数据帧。我想找出两个数据帧中所有点之间的距离。(如条目A1与B中的每个条目、A2与B中的每个条目之间的距离,依此类推,反之亦然)。我基本上是这样做的: 1.)编写了一个计算两点之间距离的函数。 2.)使用distanceFinder函数创建一个函数,用于查找组中一个点与另一个组中每个其他点之间的距离。 3.)创建了一个名为bigDistance()的函数,该函数对一个组中的每个条目调用filter(),并通过for循环将结果附加到空数据帧,直到完成为止 这段代码在我

我必须使用X,Y和Z坐标来创建数据帧。我想找出两个数据帧中所有点之间的距离。(如条目A1与B中的每个条目、A2与B中的每个条目之间的距离,依此类推,反之亦然)。我基本上是这样做的:

1.)编写了一个计算两点之间距离的函数。 2.)使用distanceFinder函数创建一个函数,用于查找组中一个点与另一个组中每个其他点之间的距离。 3.)创建了一个名为bigDistance()的函数,该函数对一个组中的每个条目调用filter(),并通过for循环将结果附加到空数据帧,直到完成为止


这段代码在我正在试验的文件上运行大约需要2分钟,我刚刚发现我必须将此算法转换为PHP。。。所以我猜这是一个优化问题,因为我觉得PHP在进行这些计算时要比R慢得多?很抱歉,如果人们觉得这个“离题”,但是的,超级新的编程和大O符号和东西,所以任何提示将是惊人的!谢谢

dist函数正好满足您的需求

myDf <- data.frame(
  x = rnorm(8),
  y = rnorm(8),
  z = rnorm(8)
)

dist(myDf)
#           1         2         3         4         5         6         7
# 2 3.0457054                                                            
# 3 1.7260658 3.2107845                                                  
# 4 1.2839101 3.4596211 2.9451175                                        
# 5 1.5656231 4.0154389 2.3421445 2.3612348                              
# 6 1.9294650 1.6655718 1.7977887 2.8726174 2.5815296                    
# 7 2.1842743 3.5274692 3.8552701 1.0984651 2.9951244 3.3220919          
# 8 1.4795857 3.5364663 0.5567753 2.7033371 1.9226225 2.0631788 3.6624082

myDf如果您真的想获得高端性能,请尝试在
C++
中翻译代码,并从
R
调用它。对于
RCpp
库,这应该非常简单。这实际上是一个好主意。唯一的问题是,我为之编写的软件完全是用PHP编写的,访问网络的计算机中没有安装R,而且似乎他们不愿意这样做。那么为什么你要在R中寻找解决方案呢?这里没有问题。这更像是一个算法分析问题。。。不是R-特异的。我多多少少要问的是,比较每一项是否是最有效的方法?因为我最终必须过滤给定用户输入的距离。
library(microbenchmark)
mb <- microbenchmark(dist(myDf))
mb
# Unit: microseconds
#       expr    min     lq    mean median     uq     max neval
# dist(myDf) 70.436 71.453 77.4083 72.978 82.133 172.911   100

autoplot(mb)