当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R recipes step_geodist 两个地点之间的距离


step_geodist() 创建配方步骤的规范,该步骤将计算Map上的点与参考位置之间的距离。

用法

step_geodist(
  recipe,
  lat = NULL,
  lon = NULL,
  role = "predictor",
  trained = FALSE,
  ref_lat = NULL,
  ref_lon = NULL,
  is_lat_lon = TRUE,
  log = FALSE,
  name = "geo_dist",
  columns = NULL,
  keep_original_cols = TRUE,
  skip = FALSE,
  id = rand_id("geodist")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

lon, lat

选择器函数用于选择步骤使用哪些变量。有关更多详细信息,请参阅selections()

role

对于此步骤创建的模型项,应为其分配什么分析角色?默认情况下,此步骤根据原始变量创建的新列将用作模型中的预测变量。

trained

指示预处理数量是否已估计的逻辑。

ref_lon, ref_lat

参考点位置的单个数值。

is_lat_lon

逻辑:坐标是纬度和经度吗?如果TRUE使用Haversine公式,返回结果为米。如果FALSE 使用毕达哥拉斯公式。默认值为TRUE,对于从以前版本的配方创建的配方,使用值FALSE

log

逻辑:距离应该通过自然对数函数转换吗?

name

用于新预测变量列的单个字符值。如果存在具有该名称的列,则会发出错误。

columns

所选变量名称的字符串。该字段是一个占位符,一旦使用 prep() 就会被填充。

keep_original_cols

将原始变量保留在输出中的逻辑。默认为 FALSE

skip

一个合乎逻辑的。当bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算。

id

该步骤特有的字符串,用于标识它。

recipe 的更新版本,将新步骤添加到任何现有操作的序列中。

细节

如果 is_lat_lon 为 FALSE,step_geodist 使用毕达哥拉斯定理计算欧几里德距离。如果 is_lat_lon 为 TRUE,则使用半正弦公式计算 great-circle 距离(以米为单位)。

整理

当您 tidy() 此步骤时,将返回一个 tibble,其列回显 latlonref_latref_lonis_lat_lonnameid 的值。

箱重

底层操作不允许使用案例权重。

参考

https://en.wikipedia.org/wiki/Haversine_formula

例子

data(Smithsonian, package = "modeldata")

# How close are the museums to Union Station?
near_station <- recipe(~., data = Smithsonian) %>%
  update_role(name, new_role = "location") %>%
  step_geodist(
    lat = latitude, lon = longitude, log = FALSE,
    ref_lat = 38.8986312, ref_lon = -77.0062457,
    is_lat_lon = TRUE
  ) %>%
  prep(training = Smithsonian)

bake(near_station, new_data = NULL) %>%
  arrange(geo_dist)
#> # A tibble: 20 × 4
#>    name                                        latitude longitude geo_dist
#>    <fct>                                          <dbl>     <dbl>    <dbl>
#>  1 National Postal Museum                          38.9     -77.0     367.
#>  2 Renwick Gallery                                 38.9     -77.0     932.
#>  3 National Museum of the American Indian          38.9     -77.0    1571.
#>  4 Smithsonian American Art Museum                 38.9     -77.0    1636.
#>  5 National Portrait Gallery                       38.9     -77.0    1646.
#>  6 National Air and Space Museum                   38.9     -77.0    1796.
#>  7 Hirshhorn Museum and Sculpture Garden           38.9     -77.0    2008.
#>  8 National Museum of Natural History              38.9     -77.0    2073.
#>  9 Arthur M. Sackler Gallery                       38.9     -77.0    2108.
#> 10 Arts and Industries Building                    38.9     -77.0    2124.
#> 11 Smithsonian Institution Building                38.9     -77.0    2193.
#> 12 National Museum of African Art                  38.9     -77.0    2202.
#> 13 Freer Gallery of Art                            38.9     -77.0    2266.
#> 14 National Museum of American History             38.9     -77.0    2393.
#> 15 National Museum of African American Histor…     38.9     -77.0    2611.
#> 16 National Zoological Park                        38.9     -77.1    5246.
#> 17 Anacostia Community Museum                      38.9     -77.0    5332.
#> 18 Steven F. Udvar-Hazy Center                     38.9     -77.4   38111.
#> 19 George Gustav Heye Center                       40.7     -74.0  324871.
#> 20 Cooper Hewitt, Smithsonian Design Museum        40.8     -74.0  334041.

tidy(near_station, number = 1)
#> # A tibble: 1 × 7
#>   latitude longitude ref_latitude ref_longitude is_lat_lon name     id    
#>   <chr>    <chr>            <dbl>         <dbl> <lgl>      <chr>    <chr> 
#> 1 latitude longitude         38.9         -77.0 TRUE       geo_dist geodi…
源代码:R/geodist.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Distance between two locations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。