The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Introduction to downloadthis

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 3 x 3 in image

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.