當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。