Skip to content

Use vetiver_pin_write() to pin a trained model to a board of models, along with an input prototype for new data and other model metadata. Use vetiver_pin_read() to retrieve that pinned object.


vetiver_pin_write(board, vetiver_model, ..., check_renv = FALSE)

vetiver_pin_read(board, name, version = NULL, check_renv = FALSE)



A pin board, created by board_folder(), board_connect(), board_url() or another board_ function.


A deployable vetiver_model() object


Additional arguments passed on to methods for a specific board.


Use renv to record the packages used at training time with vetiver_pin_write() and check for differences with vetiver_pin_read(). Defaults to FALSE.


Pin name.


Retrieve a specific version of a pin. Use pin_versions() to find out which versions are available and when they were created.


vetiver_pin_read() returns a vetiver_model(); vetiver_pin_write()

returns the name of the new pin, invisibly.


These functions read and write a vetiver_model() pin on the specified board containing the model object itself and other elements needed for prediction, such as the model's input data prototype or which packages are needed at prediction time. You may use pins::pin_read() or pins::pin_meta() to handle the pin, but vetiver_pin_read() returns a vetiver_model() object ready for deployment.


model_board <- board_temp()

cars_lm <- lm(mpg ~ ., data = mtcars)
v <- vetiver_model(cars_lm, "cars_linear")
vetiver_pin_write(model_board, v)
#> Creating new version '20231116T230221Z-100cb'
#> Writing to pin 'cars_linear'
#> Pin board <pins_board_folder>
#> Path: '/tmp/RtmpwCIPLh/pins-19abfb94839'
#> Cache size: 0

vetiver_pin_read(model_board, "cars_linear")
#> ── cars_linear<butchered_lm> model for deployment 
#> An OLS linear regression model using 10 features

# can use `version` argument to read a specific version:
pin_versions(model_board, "cars_linear")
#> # A tibble: 1 × 3
#>   version                created             hash 
#>   <chr>                  <dttm>              <chr>
#> 1 20231116T230221Z-100cb 2023-11-16 23:02:21 100cb
# can store an renv lockfile as part of the pin:
vetiver_pin_write(model_board, v, check_renv = TRUE)
#> Replacing version '20231116T230221Z-100cb' with '20231116T230222Z-100cb'
#> Writing to pin 'cars_linear'