# NOT RUN {
# A local CSV file can be obtained as
# a tbl object by supplying a path to
# the file and some CSV reading options
# (the ones used by `readr::read_csv()`)
# to the `file_tbl()` function; for
# this example we could obtain a path
# to a CSV file in the pointblank
# package with `system.file()`:
csv_path <-
system.file(
"data_files", "small_table.csv",
package = "pointblank"
)
# Then use that path in `file_tbl()`
# with the option to specify the column
# types in that CSV
tbl <-
file_tbl(
file = csv_path,
col_types = "TDdcddlc"
)
# Now that we have a `tbl` object that
# is a tibble, it can be introduced to
# `create_agent()` for validation
agent <- create_agent(tbl = tbl)
# A different strategy is to provide
# the data-reading function call
# directly to `create_agent()`:
agent <-
create_agent(
read_fn = ~ file_tbl(
file = system.file(
"data_files", "small_table.csv",
package = "pointblank"
),
col_types = "TDdcddlc"
)
) %>%
col_vals_gt(vars(a), value = 0)
# All of the file-reading instructions
# are encapsulated in the `read_fn` so
# the agent will always obtain the most
# recent version of the dataset (and the
# logic can be translated to YAML, for
# later use)
if (interactive()) {
# A CSV can be obtained from a public
# GitHub repo by using the `from_github()`
# helper function; let's create an agent
# a supply a table-prep formula that
# gets the same CSV file from the GitHub
# repository for the pointblank package
agent <-
create_agent(
read_fn = ~ file_tbl(
file = from_github(
file = "inst/data_files/small_table.csv",
repo = "rich-iannone/pointblank"
),
col_types = "TDdcddlc"
)
) %>%
col_vals_gt(vars(a), value = 0) %>%
interrogate()
# This interrogated the data that was
# obtained from the remote source file,
# and, there's nothing to clean up (by
# default, the downloaded file goes into
# a system temp directory)
# Storing table-prep formulas in a table
# store makes it easier to work with
# tabular data originating from files;
# here's how to generate a table store
# with two named entries for table
# preparations
tbls <-
tbl_store(
small_table_file ~ file_tbl(
file = system.file(
"data_files", "small_table.csv",
package = "pointblank"
),
col_types = "TDdcddlc"
),
small_high_file ~ file_tbl(
file = system.file(
"data_files", "small_table.csv",
package = "pointblank"
),
col_types = "TDdcddlc"
) %>%
dplyr::filter(f == "high")
)
# Now it's easy to access either of these
# tables (the second is a mutated version)
# via the `tbl_get()` function
tbl_get("small_table_file", store = tbls)
tbl_get("small_high_file", store = tbls)
# The table-prep formulas in `tbls`
# could also be used in functions with
# the `read_fn` argument; this is thanks
# to the `tbl_source()` function
agent <-
create_agent(
read_fn = ~ tbl_source(
"small_table_file",
store = tbls
)
)
informant <-
create_informant(
read_fn = ~ tbl_source(
"small_high_file",
store = tbls
)
)
}
# }
Run the code above in your browser using DataLab