... see rmarkdown example code.
Appreciate answers demonstrating the solution by modifying the rmarkdown snippet.
---
title: "Reproducable Example"
author: "user2030503"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Example: mtcars
```{r}
write.csv2(mtcars, "./file.csv")
# Code to embed mtcars as csv
# Code to provide mechanism for button or link for later user interaction to open/save the csv.
```
## Problem
* I want to embed the csv file into the html generated by this rmarkdown script.
* Embedding here means, that the csv data are integral part of the hmtl (i.e. for offline use).
* I want a mechanism (button or link) in the html, which allows the user to open/save the data the csv.
## Search for a solution
There are techniques for embedding rdata files.
* http://rmarkdown.rstudio.com/articles_rdata.html
* https://github.com/richarddmorey/BayesFactorExtras/blob/master/BayesFactorExtras/R/downloadURI.R
## Question
* Dispite of above approaches, I did not find a solution yet how to solve the problem.
* How can it be achieved demonstrating it via this reproducable example ?
To transform your markdown file into an HTML, PDF, or Word document, click the “Knit” icon that appears above your file in the scripts editor. A drop down menu will let you select the type of output that you want. When you click the button, rmarkdown will duplicate your text in the new file format.
If you prefer to use the console by default for all your R Markdown documents (restoring the behavior in previous versions of RStudioRStudioRStudio is an integrated development environment for R, a programming language for statistical computing and graphics. It is available in two formats: RStudio Desktop is a regular desktop application while RStudio Server runs on a remote server and allows accessing RStudio using a web browser.https://en.wikipedia.org › wiki › RStudioRStudio - Wikipedia), you can make Chunk Output in Console the default: Tools -> Options -> R Markdown -> Show output inline for all R Markdown documents .
Creating documents with R Markdown starts with an . Rmd file that contains a combination of markdown (content with simple text formatting) and R code chunks. The . Rmd file is fed to knitr, which executes all of the R code chunks and creates a new markdown (. md) document which includes the R code and its output.
No javascript; no widgets; no extra CSS; 4 LoC (cld be 1 LoC if you like unreadable code):
```{r}
write.csv2(mtcars, "./file.csv")
library(magrittr)
readLines("./file.csv") %>%
paste0(collapse="\n") %>%
openssl::base64_encode() -> encoded
```
[Download CSV](`r sprintf('data:text/csv;base64,%s', encoded)`)
Fairly straightforward:
You can also do something like:
<a download="mtcars.csv" href="`r sprintf('data:text/csv;base64,%s', encoded)`">Straight HTML Download Link</a>
if you want to give browsers (and, hence, users) a suggested filename (HTML placement in markdown rules apply).
NOTE:
readBin("./file.csv", "raw", file.info("./file.csv")$size) %>%
openssl::base64_encode() -> encoded
also works equally as well as the readLines()
version.
How about something like this:
---
title: "Reproducable Example"
author: "dimitris_ps "
date: "17 December 2016"
output: html_document
---
<style>
#DataTables_Table_0 {
visibility: hidden;
}
#DataTables_Table_0_paginate {
visibility: hidden;
}
</style>
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(DT)
dt <- datatable(mtcars, rownames=T,
# filter = 'top',
callback=JS('$("a.buttons-collection").css("background","#008CBA");
$("a.buttons-collection").css("font-size","15px");
$("a.buttons-collection").css("border-radius", "8px");
$("a.buttons-collection").css("margin-right","0px");
return table;'),
extensions = 'Buttons',
options = list(searching=F,
paging = T,
bInfo = F,
columnDefs = list(list(className = 'dt-left', targets = 0),
list(className = 'dt-center', targets = 1:11)),
pageLength = 1,
initComplete = JS("function(settings, json) {",
"$(this.api().table().header()).css({'background-color': '#99ccff', 'color': '#003333'});",
"}"),
dom = 'Bfrtip',
buttons = list(
list(extend = 'collection',
buttons = c('excel', 'csv'),
text = 'DOWNLOAD DATA')
)
)
)
```
<br>
```{r mtcars, echo=FALSE}
dt
```
You will need to have the DT
library installed
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With