read_or_process {dlr} | R Documentation |
Read or Process a File
Description
Often, a file must be processed before being usable in R. It can be useful to save the processed contents of that file in a standard format, such as RDS, so that the file does not need to be processed the next time it is loaded.
Usage
read_or_process(
source_path,
target_path,
process_f = readRDS,
process_args = NULL,
read_f = readRDS,
read_args = NULL,
write_f = saveRDS,
write_args = NULL,
force_process = FALSE
)
Arguments
source_path |
Character scalar; the path to the raw file. Paths starting
with |
target_path |
Character scalar; the path where the processed version of the file should be stored. |
process_f |
A function or one-sided formula to use to process the source
file. |
process_args |
An optional list of additional arguments to
|
read_f |
A function or one-sided formula to use to read the processed
file. |
read_args |
An optional list of additional arguments to |
write_f |
A function or one-sided formula to use to save the processed
file. The processed object will be passed as the first argument to this
function, and |
write_args |
An optional list of additional arguments to |
force_process |
A logical scalar indicating whether we should process the source file even if the target already exists. This can be particularly useful if you wish to redownload a file. |
Value
The processed object.
Examples
if (interactive()) {
temp_filename <- tempfile()
austin_smoke_free <- read_or_process(
"https://query.data.world/s/owqxojjiphaypjmlxldsp566lck7co",
target_path = temp_filename,
process_f = read.csv
)
head(austin_smoke_free)
}
# Calling the function a second time gives the result instantly.
if (interactive()) {
austin_smoke_free <- read_or_process(
"https://query.data.world/s/owqxojjiphaypjmlxldsp566lck7co",
target_path = temp_filename,
process_f = read.csv
)
head(austin_smoke_free)
}
if (interactive()) {
# Remove the generated file.
unlink(temp_filename)
}