有没有一种方法可以使用 ggmap mapdist 在 R 中同时 运行 多个数据点?

Is there a way I can run multiple two and from data points at once in R using ggmap mapdist?

我目前有一个数据集,其中包含纬度和经度格式的数据。 例如列中的数据看起来像“46.40267091+-117.04417”。第二列中的数据看起来相同。

使用 ggmap 我可以单独 运行 我尝试计算距离的每个位置的代码。

mapdist("46.3957 +-117.0622","46.40267091+-117.04417",mode = "driving")

from                   to                         m    km miles seconds minutes  hours mode   
  <chr>                  <chr>                  <int> <dbl> <dbl>   <int>   <dbl>  <dbl> <chr>  
1 46.3957 +-117.0622 46.40267091+-117.04417  2183  2.18  1.36     217    3.62 0.0603 driving

我很难一次性 运行 处理所有数据,因为我必须处理 736 行数据。有没有一种快速的方法可以做到这一点,而不是一个一个地做,这很容易出错?

感谢您的帮助

正如所承诺的,这是使用 R 实现您想要的目标的一种方法。我在 Jupyter Lab 中做到了这一点,但这不会改变任何东西。这是代码:

获取To/From数据:

    df_t <- read.csv("C:/python/R_files/Whosebug/To.csv")
    df_f <- read.csv("C:/python/R_files/Whosebug/From.csv")
    head(df_t, 2)
    head(df_f, 2)

输出:(看起来不错)

    A data.frame: 2 × 1
    To
    <fct>
    1   "46.40267091 - 117.04417"
    2   "46.40267091 - 117.04417"
    A data.frame: 2 × 1
    From
    <fct>
    1   "46.406333- 117.049925"
    2   "46.395726- 117.062265"

接下来,我将两个数据帧合并为一个数据帧。您的数据可能已经像这样合并了。

    df <- data.frame(from = c(df_f), to = c(df_t))
    df

输出:(看起来不错)

    A data.frame: 6 × 2
    From                      To
    <fct>                     <fct>
    "46.406333- 117.049925" "46.40267091 - 117.04417"
    "46.395726- 117.062265" "46.40267091 - 117.04417"
    "46.306254- 119.27897"  "46.2342797 - 119.2329393"
    "46.275479- 119.301406" "46.2342797 - 119.2329393"
    "46.281562- 119.293819" "46.2342797 - 119.2329393"
    "46.288286- 119.284903" "46.2342797 - 119.2329393"

最后,创建一个函数并对 to/from 进行子集化。获取数据:

    dist <- apply(df, 1, function(x){
                   mapdist( x["From"], x["To"]     )
                 })
    
    dist   # run the function

你会想要绘制这些点。我从来没有绘制数据来查看数据或结果是否有意义。

输出-点击link:(Just right!)