Updates records in a location table. Records are identified
by locationID
and the data found in locationData
is used to
replace any existing value in the columnName
column.
locationID
and locationData
must be of the same length.
Any NA
values in locationID
will be ignored.
If columnName
is not a named column within locationTbl
, a new
column will be created.
table_updateColumn(
locationTbl = NULL,
columnName = NULL,
locationID = NULL,
locationData = NULL,
verbose = TRUE
)
Tibble of known locations.
Name of an existing/new column in locationTbl
whose data
will be updated/created.
Vector of locationID
strings.
Vector of data to be inserted at records identified by
locationID
.
Logical controlling the generation of progress messages.
Updated tibble of known locations.
library(MazamaLocationUtils)
locationTbl <- get(data("wa_monitors_500"))
wa <- get(data("wa_airfire_meta"))
# We will merge some metadata from wa into locationTbl
# Record indices for wa
wa_indices <- seq(5,65,5)
wa_sub <- wa[wa_indices,]
locationID <-
table_getLocationID(
locationTbl,
wa_sub$longitude,
wa_sub$latitude,
distanceThreshold = 500
)
locationData <- wa_sub$AQSID
locationTbl <-
table_updateColumn(locationTbl, "AQSID", locationID, locationData)
# Look at the data we attempted to merge
wa$AQSID[wa_indices]
#> [1] "530710006" "840MM0510008" "840530250003" "530450007" "530470010"
#> [6] "530330030" "840MM0370180" "530150015" "530330023" "530070011"
#> [11] "530570015" "840MM0399990" "530750005"
# And two columns from the updated locationTbl
locationTbl_indices <- table_getRecordIndex(locationTbl, locationID)
locationTbl[locationTbl_indices, c("city", "AQSID")]
#> # A tibble: 13 × 2
#> city AQSID
#> <chr> <chr>
#> 1 Burbank 530710006
#> 2 Newport 840MM0510008
#> 3 Soap Lake 840530250003
#> 4 Shelton 530450007
#> 5 Winthrop 530470010
#> 6 Seattle 530330030
#> 7 Cle Elum 840MM0370180
#> 8 Longview 530150015
#> 9 Enumclaw 530330023
#> 10 Wenatchee 530070011
#> 11 Mount Vernon 530570015
#> 12 White Salmon 840MM0399990
#> 13 LaCrosse 530750005