edit_toml {strata} | R Documentation |
Edit a toml file by providing a dataframe replacement
Description
Users can use edit_toml()
to edit a toml file (should they opt not to use a
text editor) by providing a dataframe of the desired contents. The function
will check the dataframe for validity and then rewrite the toml file using
the dataframe as a blueprint.
Usage
edit_toml(original_toml_path, new_toml_dataframe)
Arguments
original_toml_path |
Path to the original toml file. |
new_toml_dataframe |
Dataframe of the new toml file contents with the
following columns: |
Value
invisible original toml file path to toml file
new_toml_dataframe
edit_toml()
will check the dataframe for the following columns:
-
type
: The type of the toml file, a character that is either "strata" or "laminae" -
name
: The character string that is the name of the stratum or lamina -
order
: The numeric order of the stratum or lamina -
skip_if_fail
: (if type == laminae) A logical indicating if the lamina should be skipped if it fails -
created
: A valid date that is the day the stratum or lamina was created
Unexpected columns will be dropped, and edit_toml()
will warn the user.
If there are any missing columns, edit_toml()
will return an error, stop
and inform the user what is missing.
If there are duplicates in the order
than strata
will rewrite the order
using its best guess.
usage
Users using this function will likely want to combine some of the other
helpers in strata
. This may looks something like this:
User runs
survey_tomls()
to find all the toml files in the projectUser runs
view_toml()
to view the contents of the toml file and saves to an object, likeoriginal_toml
or similiarUser edits the
original_toml
object to their liking and saves as a new object, likenew_toml
.User runs
edit_toml()
with the path to the original toml andnew_toml
objects and can then useview_toml()
to confirm the changes.
Examples
tmp <- fs::dir_create(fs::file_temp())
strata::build_quick_strata_project(tmp, 2, 3)
original_toml_path <- survey_tomls(tmp)[[1]]
original_toml <- view_toml(original_toml_path)
original_toml
new_toml <- original_toml |>
dplyr::mutate(
created = as.Date("2021-01-01")
)
new_toml_path <- edit_toml(original_toml_path, new_toml)
view_toml(new_toml_path)
fs::dir_delete(tmp)