This package provides a wrapper around
bsplus::bs_button()
, which has to goal to provide a
download button in HTML outputs from R Markdown without the need to have
runtime: shiny
.
Currently, the download buttons functionality (embedded files) is not supported in Internet Explorer.
Please, refer to the Customizing buttons with css vignette for tips on how to customize the buttons.
You can easily produce a download button as follows:
Data frames
Passing a data frame to the function
library(downloadthis)
mtcars %>%
download_this(
output_name = "mtcars dataset",
output_extension = ".csv",
button_label = "Download data as csv",
button_type = "default",
has_icon = TRUE,
icon = "fa fa-save"
)
Lists (only .xlsx
and .rds
are
supported)
Passing a list with data frames to the function
list(mtcars, iris) %>%
download_this(
output_name = "mtcars and iris datasets",
output_extension = ".xlsx",
button_label = "Download datasets as xlsx",
button_type = "warning",
has_icon = TRUE,
icon = "fa fa-save"
)
Passing a named list with data frames to the function
list("mtcars dataset" = mtcars, "iris dataset" = iris) %>%
download_this(
output_name = "mtcars and iris datasets",
output_extension = ".xlsx",
button_label = "Download datasets as xlsx",
button_type = "warning",
has_icon = TRUE,
icon = "fa fa-save"
)
R Objects
In case you want to make any R object available for download, you may
use the .rds
extension.
vector_example <- 1:10
linear_model <- lm(mpg ~ gear, data = mtcars)
list(mtcars, iris, vector_example, linear_model) %>%
download_this(
output_name = "datasets, vector, and linear model",
output_extension = ".rds",
button_label = "Download as rds",
button_type = "warning",
has_icon = TRUE,
icon = "fa fa-save"
)
Web address
## Link in Github repo
download_link(
link = "https://github.com/fmmattioni/downloadthis/raw/master/inst/example/file_1.pdf",
button_label = "Download pdf file",
button_type = "danger",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
Local files
Single file
download_file(
path = system.file("assets/css/all.min.css", package = "downloadthis"),
output_name = "CSS file from downloadthis",
button_label = "Download css file",
button_type = "danger",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
Multiple files
path_files <- list.files(path = system.file("assets/css", package = "downloadthis"), full.names = TRUE)
download_file(
path = path_files,
output_name = "Files from downloadthis",
button_label = "Download files",
button_type = "danger",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
Local directory
download_dir(
path = system.file("assets", package = "downloadthis"),
output_name = "example dir",
button_label = "Download directory",
button_type = "success",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
ggplot2
library(ggplot2)
plot <- ggplot(cars, aes(speed, dist)) +
geom_point()
plot
download_this(plot)
#> Saving 7.29 x 4.51 in image