├── .Rprofile ├── .gitignore ├── .gitmodules ├── .zenodo.json ├── 0_helpers.R ├── 1_wrangle_data.Rmd ├── 2_descriptives.Rmd ├── 3_analyses.Rmd ├── README.md ├── _regression_summary.Rmd ├── _site.yml ├── apa-custom-no-issue.csl ├── docs ├── .Rprofile.html ├── 0_helpers.html ├── 1_wrangle_data.html ├── 2_descriptives.html ├── 2_descriptives_files │ └── figure-html │ │ ├── unnamed-chunk-4-1.png │ │ ├── unnamed-chunk-4-2.png │ │ ├── unnamed-chunk-4-3.png │ │ └── unnamed-chunk-4-4.png ├── 3_analyses.html ├── 3_analyses_files │ └── figure-html │ │ ├── model_name_diagnostics-1.png │ │ ├── model_name_diagnostics-2.png │ │ ├── model_name_diagnostics-3.png │ │ ├── model_name_diagnostics-4.png │ │ ├── model_name_diagnostics-8-1.png │ │ ├── model_name_diagnostics-8-2.png │ │ ├── model_name_diagnostics-8-3.png │ │ └── model_name_diagnostics-8-4.png ├── README.html ├── _regression_summary.html ├── index.html ├── site_libs │ ├── bootstrap-3.3.5 │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ ├── cerulean.min.css │ │ │ ├── cosmo.min.css │ │ │ ├── flatly.min.css │ │ │ ├── fonts │ │ │ │ ├── Lato.ttf │ │ │ │ ├── LatoBold.ttf │ │ │ │ ├── LatoItalic.ttf │ │ │ │ ├── NewsCycle.ttf │ │ │ │ ├── NewsCycleBold.ttf │ │ │ │ ├── OpenSans.ttf │ │ │ │ ├── OpenSansBold.ttf │ │ │ │ ├── OpenSansBoldItalic.ttf │ │ │ │ ├── OpenSansItalic.ttf │ │ │ │ ├── OpenSansLight.ttf │ │ │ │ ├── OpenSansLightItalic.ttf │ │ │ │ ├── Raleway.ttf │ │ │ │ ├── RalewayBold.ttf │ │ │ │ ├── Roboto.ttf │ │ │ │ ├── RobotoBold.ttf │ │ │ │ ├── RobotoLight.ttf │ │ │ │ ├── RobotoMedium.ttf │ │ │ │ ├── SourceSansPro.ttf │ │ │ │ ├── SourceSansProBold.ttf │ │ │ │ ├── SourceSansProItalic.ttf │ │ │ │ ├── SourceSansProLight.ttf │ │ │ │ └── Ubuntu.ttf │ │ │ ├── journal.min.css │ │ │ ├── lumen.min.css │ │ │ ├── paper.min.css │ │ │ ├── readable.min.css │ │ │ ├── sandstone.min.css │ │ │ ├── simplex.min.css │ │ │ ├── spacelab.min.css │ │ │ ├── united.min.css │ │ │ └── yeti.min.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── npm.js │ │ └── shim │ │ │ ├── html5shiv.min.js │ │ │ └── respond.min.js │ ├── font-awesome-4.5.0 │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ └── font-awesome.min.css │ │ └── fonts │ │ │ └── fontawesome-webfont.ttf │ ├── jquery-1.11.3 │ │ └── jquery.min.js │ └── navigation-1.1 │ │ ├── codefolding.js │ │ ├── sourceembed.js │ │ └── tabsets.js └── styles.css ├── index.Rmd ├── packrat_bibliography.bibtex ├── repro_web_stack.Rproj └── styles.css /.Rprofile: -------------------------------------------------------------------------------- 1 | #' # `.Rprofile` 2 | 3 | #' ## Settings 4 | #' allow duplicate chunk labels in knitr, useful for knit_child 5 | options(knitr.duplicate.label = 'allow') 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | packrat/lib*/ 6 | packrat/src/ 7 | *.rds 8 | *.rdata 9 | *_cache/ 10 | .passwords.R 11 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/.gitmodules -------------------------------------------------------------------------------- /.zenodo.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Reproducible website stack", 3 | "grants": [ 4 | { 5 | } 6 | ], 7 | "upload_type": "software", 8 | "creators": [ 9 | { 10 | "affiliation": "Your university", 11 | "name": "Your Name" 12 | } 13 | ], 14 | "access_right": "open" 15 | } 16 | -------------------------------------------------------------------------------- /0_helpers.R: -------------------------------------------------------------------------------- 1 | #' # Helper functions used throughout {.tabset .tabset-sticky} 2 | #' documentation on the functions is interspersed through code comments 3 | #' 4 | #' ## set some options 5 | #' dont show messages when loading libraries 6 | # library = function(...) suppressMessages(base::library(...)) 7 | #' never set strings as factors automatically (google for reason why) 8 | options(stringsAsFactors = FALSE) 9 | #' show four significant digits tops 10 | options(digits = 4) 11 | #' tend not to show scientific notation, because we're just psychologists 12 | options(scipen = 7) 13 | #' make output a bit wider 14 | options(width = 110) 15 | #' set a seed to make analyses depending on random number generation reproducible 16 | set.seed(1710) # if you use your significant other's birthday make sure you stay together for the sake of reproducibility 17 | 18 | #' ## Load packages 19 | #' generate the site 20 | library(rmarkdown) 21 | #' set options for chunks 22 | library(knitr) 23 | #' my formr utility package to generate e.g. the bibliography 24 | library(formr) 25 | #' pretty-printed output 26 | library(pander) 27 | #' tidyverse date times 28 | library(lubridate) 29 | #' tidyverse strings 30 | library(stringr) 31 | #' extractor functions for models 32 | library(broom) 33 | #' grammar of graphics plots 34 | library(ggplot2) 35 | #' tidyverse: transform data wide to long 36 | library(tidyr) 37 | #' tidyverse-style data wrangling. has a lot of naming conflicts, so always load last 38 | library(dplyr) 39 | 40 | #' some packages may be needed without being loaded 41 | fool_packrat = function() { 42 | # needed to install formr package 43 | library(devtools) 44 | # needed to actually run rmarkdown in RStudio, but for some reason not in its dependencies 45 | library(formatR) 46 | } 47 | 48 | #' ## Spin R files 49 | #' R scripts can be documented in markdown using Roxygen comments, as demonstrated here 50 | #' This function turns all R files (that don't have an Rmd file of the same name and that don't start with an underscore _) into HTML pages 51 | spin_R_files_to_site_html = function() { 52 | library(knitr) 53 | all_Rs = c(list.files(pattern = "^[^_].+\\.R$"), ".Rprofile") 54 | component_Rmds = list.files(pattern = "^_.+\\.Rmd$") 55 | temporary_Rmds = c() 56 | for (i in seq_along(all_Rs)) { 57 | if(all_Rs[i] == ".Rprofile") { 58 | Rmd_file = ".Rprofile.Rmd" 59 | } else { 60 | Rmd_file = paste0(all_Rs[i], "md") 61 | } 62 | if (!file.exists(Rmd_file)) { 63 | next_document = length(temporary_Rmds) + 1 64 | temporary_Rmds[next_document] = spin(all_Rs[i], knit = FALSE, envir = new.env(), format = "Rmd") 65 | prepended_yaml = paste0(c("--- 66 | output: 67 | html_document: 68 | code_folding: 'show' 69 | --- 70 | 71 | ", readLines(temporary_Rmds[next_document])), collapse = "\n") 72 | cat(prepended_yaml, file = temporary_Rmds[next_document]) 73 | } 74 | } 75 | components_and_scripts = c(temporary_Rmds, component_Rmds) 76 | for (i in seq_along(components_and_scripts)) { 77 | opts_chunk$set(eval = FALSE, cache = FALSE) 78 | # if we call render_site on the .R file directly it adds a header I don't like 79 | rmarkdown::render_site(components_and_scripts[i], quiet = TRUE) 80 | } 81 | opts_chunk$set(eval = TRUE, cache = TRUE) 82 | unlink(temporary_Rmds) 83 | } 84 | 85 | #' ## Output options 86 | #' use pander to pretty-print objects (if possible) 87 | opts_chunk$set( 88 | render = pander_handler 89 | ) 90 | 91 | #' don't split tables, scroll horizontally 92 | panderOptions("table.split.table", Inf) 93 | 94 | #' ## Knitr components 95 | #' 96 | #' summarise regression using a "knitr component" 97 | regression_summary = function(model, indent = "##") { 98 | model_name = deparse(substitute(model_name)) 99 | old_opt = options('knitr.duplicate.label')$knitr.duplicate.label 100 | options(knitr.duplicate.label = 'allow') 101 | on.exit(options(knitr.duplicate.label = old_opt)) 102 | options = list( 103 | fig.path = paste0(knitr::opts_chunk$get("fig.path"), model_name, "_"), 104 | cache.path = paste0(knitr::opts_chunk$get("cache.path"), model_name, "_") 105 | ) 106 | formr::asis_knit_child("_regression_summary.Rmd", options = options) 107 | } 108 | 109 | -------------------------------------------------------------------------------- /1_wrangle_data.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | output: 3 | html_document: 4 | code_folding: "show" 5 | --- 6 | 7 | # Wrangle data {.tabset .tabset-sticky} 8 | 9 | ```{r message=FALSE, warning=FALSE} 10 | source("0_helpers.R") 11 | ``` 12 | 13 | ## Wrangle wrangle 14 | 15 | ```{r} 16 | data("msleep") 17 | msleep %>% 18 | mutate(eats = factor(recode(vore, "carni" = "meat", "omni" = "everything", "herbi" = "plants", "insecti" = "insects"), c("everything","plants", "insects", "meat"))) -> 19 | msleep 20 | ``` 21 | 22 | ## Save data 23 | ```{r} 24 | saveRDS(msleep, file = "msleep_processed.rds") 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /2_descriptives.Rmd: -------------------------------------------------------------------------------- 1 | # Descriptives {.tabset .tabset-sticky} 2 | 3 | ```{r message=FALSE, warning=FALSE} 4 | source("0_helpers.R") 5 | ``` 6 | 7 | ## Load data 8 | 9 | ```{r} 10 | msleep = readRDS("msleep_processed.rds") 11 | ``` 12 | 13 | ## Descriptives {.active} 14 | ```{r warning=FALSE} 15 | msleep %>% 16 | select(sleep_total, sleep_rem, brainwt, bodywt) %>% 17 | summarise_all_vars() 18 | ``` 19 | 20 | ## Distributions 21 | 22 | ```{r} 23 | qplot(eats, data = msleep) 24 | qplot(sleep_total, data = msleep, binwidth = 0.5) 25 | qplot(sleep_rem, data = msleep, binwidth = 0.5) 26 | qplot(sleep_total, sleep_rem, data = msleep) 27 | ``` 28 | 29 | ## Look at the data 30 | 31 | ```{r} 32 | library(DT) 33 | datatable(msleep, 34 | filter = 'top', options = list( 35 | pageLength = 50, autoWidth = TRUE 36 | ), rownames = F) 37 | ``` 38 | 39 | -------------------------------------------------------------------------------- /3_analyses.Rmd: -------------------------------------------------------------------------------- 1 | # Analyses {.tabset .tabset-sticky} 2 | 3 | ```{r message=FALSE, warning=FALSE} 4 | source("0_helpers.R") 5 | ``` 6 | 7 | ## Load data 8 | 9 | ```{r} 10 | msleep = readRDS("msleep_processed.rds") 11 | ``` 12 | 13 | ## Basic model {.tabset .tabset-sticky} 14 | 15 | ```{r} 16 | m1 = lm(sleep_rem ~ sleep_total, data = msleep) 17 | regression_summary(m1) 18 | ``` 19 | 20 | ## Super-advanced model {.active .tabset .tabset-sticky} 21 | 22 | ```{r} 23 | m2 = lm(sleep_rem ~ sleep_total + log(brainwt) + log(bodywt) + eats, data = msleep) 24 | regression_summary(m2) 25 | ``` 26 | 27 | ## Summary 28 | 29 | ```{r} 30 | bind_rows( 31 | "Model 1" = glance(m1), 32 | "Model 2" = glance(m2), 33 | .id = "Model") %>% arrange(AIC) %>% select(Model, adj.r.squared, BIC, deviance, df.residual) 34 | ``` 35 | 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Reproducible web stack 2 | 3 | This is a stack of tools that have served me well to generate reproducible websites. 4 | Some defaults were set to make things more seamless and I added some files to show it works. This is a fairly opinionated approach and your mileage may vary. 5 | 6 | The website generated from these scripts can be viewed at: 7 | https://rubenarslan.github.io/repro_web_stack 8 | 9 | ## Requirements to get started 10 | 11 | - [RStudio](https://www.rstudio.com/products/rstudio/download/) 1.* 12 | - [R](https://cran.rstudio.com/) 3.* 13 | - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) (should already be installed on Mac OS Mavericks and above) 14 | 15 | ## Set up 16 | Here's how to set up: 17 | 18 | 1. (Optional, if you have a Github account already or are willing to create one). Fork this repository (top right). 19 | 20 | 2. Open RStudio. In the top right menu "project menu", click new project. 21 | 22 | 3. In the dialog box that appears, click "Version Control". Copy-paste the URL from your repository (it will be `https://github.com/rubenarslan/repro_web_stack` except with your username, if you forked it). Create the project (you can pick a different name if you'd like). 23 | 24 | 3. In RStudio packrat should start installing packages, if not, consider running 25 | 26 | ```r 27 | packrat::restore() # this should run by default if you open the project in an up-to-date RStudio version 28 | packrat::disable() # because packrat is a bit immature, it's probably easier to only turn it on at the end, when you archive your project. It may make sense to put up with the immaturities if you're working on a lot of projects in parallel. 29 | ``` 30 | 31 | 5. Now try whether you can generate the website by clicking "Knit" in the file `1_wrangle_data.Rmd`, then try the other files, then modify them to suit your project. 32 | 33 | ## Configuration 34 | 35 | Here's a few files you might want to edit: 36 | 37 | 1. `.zenodo.json` this file contains the metadata that will be used to describe your releases on Zenodo. Add the project name and the authors in this file. 38 | 39 | 2. `_site.yml` here you can set up a few global settings for how your site should look like. [More information](http://rmarkdown.rstudio.com/rmarkdown_websites.html). 40 | 41 | 3. `0_helpers.R` - here I load a few packages that I tend to always use. I think it makes sense to load a basic set of packages in this helper file and include it everywhere. Load order matters hugely in R (especially when you use dplyr, which has lots of name conflicts with other packages) and it can simplify things for you, when you know the load order. I've also set a few defaults here that make sense to me. 42 | 43 | 4. The name of the `.Rproj` file to something descriptive of your project (and correspondingly, the name on Github). 44 | 45 | ## Releasing to Zenodo 46 | 47 | To release to Zenodo via the API, your repository needs to be public. Then, go to [Zenodo](https://zenodo.org/), connect your Github account, flip the switch next to the project name and make a release on Github. It will automatically be uploaded to Zenodo and you will get a DOI, like this [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.268888.svg)](https://doi.org/10.5281/zenodo.268888). 48 | 49 | If you don't want your R-code to be public, but only the HTML files, you can either: zip the contents of the "docs" folder and upload that to Zenodo by hand or you can make a separate, public repository for your HTML files and check this out in your "docs" folder. 50 | 51 | ## Notes 52 | 53 | ### Accessing the generated site on Github pages. 54 | 55 | After a bit of trial and error with my students, I think the best option for beginners to release the website you generated, is to serve it from the "docs" folder in your repository. You will have to go to your repository settings on Github and pick "docs" as the Github Pages option. 56 | -------------------------------------------------------------------------------- /_regression_summary.Rmd: -------------------------------------------------------------------------------- 1 | ```{r setup,eval=TRUE} 2 | if (!exists("indent")) { 3 | indent = '##' # ugly hack so _regression_summary can be "spun" (variables included via `r ` have to be available) 4 | } 5 | ``` 6 | 7 | `r indent`# Summary 8 | ```{r summary} 9 | summary(model) 10 | ``` 11 | 12 | `r indent`# Diagnostics 13 | ```{r diagnostics} 14 | plot(model) 15 | ``` 16 | -------------------------------------------------------------------------------- /_site.yml: -------------------------------------------------------------------------------- 1 | name: reproducible-website-stack 2 | output_dir: docs 3 | navbar: 4 | title: Reproducible website stack 5 | left: 6 | - text: Overview 7 | href: index.html 8 | - text: Data wrangling 9 | href: 1_wrangle_data.html 10 | - text: Descriptives 11 | href: 2_descriptives.html 12 | - text: Analyses 13 | href: 3_analyses.html 14 | right: 15 | - text: '' 16 | icon: fa-github 17 | href: https://github.com/rubenarslan/repro_web_stack 18 | output: 19 | html_document: 20 | theme: paper 21 | code_folding: hide 22 | df_print: tibble 23 | code_download: yes 24 | highlight: zenburn 25 | css: styles.css 26 | lib_dir: site_libs 27 | self_contained: no 28 | exclude: 29 | - packrat 30 | - '*.rda' 31 | - '*.pdf' 32 | - '*.dta' 33 | - '*.csv' 34 | - geo 35 | - item_tables 36 | - '*.csl' 37 | - '*.bibtex' 38 | 39 | -------------------------------------------------------------------------------- /apa-custom-no-issue.csl: -------------------------------------------------------------------------------- 1 | 2 | 446 | -------------------------------------------------------------------------------- /docs/.Rprofile.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 70 | 75 | 76 | 77 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 134 | 135 | 136 | 169 | 170 | 187 | 188 | 189 |
190 | 191 | 192 | 197 | 198 | 199 | 202 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 251 | 252 | 268 | 269 | 270 |
271 |

.Rprofile

272 |
273 |

Settings

274 |

allow duplicate chunk labels in knitr, useful for knit_child

275 |
options(knitr.duplicate.label = 'allow')
276 | 
277 | #### -- Packrat Autoloader (version 0.4.8-1) -- ####
278 | source("packrat/init.R")
279 | #### -- End Packrat Autoloader -- ####
280 |
281 |
282 | 283 |
LS0tCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9mb2xkaW5nOiAnc2hvdycKLS0tCgoKIyBgLlJwcm9maWxlYAojIyBTZXR0aW5ncwphbGxvdyBkdXBsaWNhdGUgY2h1bmsgbGFiZWxzIGluIGtuaXRyLCB1c2VmdWwgZm9yIGtuaXRfY2hpbGQKCmBgYHtyIH0Kb3B0aW9ucyhrbml0ci5kdXBsaWNhdGUubGFiZWwgPSAnYWxsb3cnKQoKIyMjIyAtLSBQYWNrcmF0IEF1dG9sb2FkZXIgKHZlcnNpb24gMC40LjgtMSkgLS0gIyMjIwpzb3VyY2UoInBhY2tyYXQvaW5pdC5SIikKIyMjIyAtLSBFbmQgUGFja3JhdCBBdXRvbG9hZGVyIC0tICMjIyMKYGBgCg==
284 | 285 | 286 | 287 |
288 | 289 | 301 | 302 | 303 | 311 | 312 | 313 | 314 | -------------------------------------------------------------------------------- /docs/0_helpers.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 70 | 75 | 76 | 77 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 134 | 135 | 136 | 169 | 170 | 187 | 188 | 189 |
190 | 191 | 192 | 197 | 198 | 199 | 202 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 251 | 252 | 268 | 269 | 270 |
271 |

Helper functions used throughout

272 |

documentation on the functions is interspersed through code comments

273 |
274 |

set some options

275 |

dont show messages when loading libraries

276 |
# library = function(...) suppressMessages(base::library(...))
277 |

never set strings as factors automatically (google for reason why)

278 |
options(stringsAsFactors = FALSE)
279 |

show four significant digits tops

280 |
options(digits = 4)
281 |

tend not to show scientific notation, because we’re just psychologists

282 |
options(scipen = 7)
283 |

make output a bit wider

284 |
options(width = 110)
285 |

set a seed to make analyses depending on random number generation reproducible

286 |
set.seed(1710) # if you use your significant other's birthday make sure you stay together for the sake of reproducibility
287 |
288 |
289 |

Load packages

290 |

generate the site

291 |
library(rmarkdown)
292 |

set options for chunks

293 |
library(knitr)
294 |

my formr utility package to generate e.g. the bibliography

295 |
library(formr)
296 |

pretty-printed output

297 |
library(pander)
298 |

tidyverse date times

299 |
library(lubridate)
300 |

tidyverse strings

301 |
library(stringr)
302 |

extractor functions for models

303 |
library(broom)
304 |

grammar of graphics plots

305 |
library(ggplot2)
306 |

tidyverse: transform data wide to long

307 |
library(tidyr)
308 |

tidyverse-style data wrangling. has a lot of naming conflicts, so always load last

309 |
library(dplyr)
310 |

some packages may be needed without being loaded

311 |
fool_packrat = function() {
312 |     # needed to install formr package
313 |     library(devtools)
314 |     # needed to actually run rmarkdown in RStudio, but for some reason not in its dependencies
315 |     library(formatR)
316 | }
317 |
318 |
319 |

Spin R files

320 |

R scripts can be documented in markdown using Roxygen comments, as demonstrated here This function turns all R files (that don’t have an Rmd file of the same name and that don’t start with an underscore _) into HTML pages

321 |
spin_R_files_to_site_html = function() {
322 |     library(knitr)
323 |     all_Rs = c(list.files(pattern = "^[^_].+\\.R$"), ".Rprofile")
324 |     component_Rmds = list.files(pattern = "^_.+\\.Rmd$")
325 |     temporary_Rmds = c()
326 |     for (i in seq_along(all_Rs)) {
327 |         if(all_Rs[i] == ".Rprofile") {
328 |             Rmd_file = ".Rprofile.Rmd"
329 |         } else {
330 |             Rmd_file = paste0(all_Rs[i], "md")
331 |         }
332 |         if (!file.exists(Rmd_file)) {
333 |             next_document = length(temporary_Rmds) + 1
334 |             temporary_Rmds[next_document] = spin(all_Rs[i], knit = FALSE, envir = new.env(), format = "Rmd")
335 |             prepended_yaml = paste0(c("---
336 | output:
337 |   html_document:
338 |     code_folding: 'show'
339 | ---
340 | 
341 | ", readLines(temporary_Rmds[next_document])), collapse = "\n")
342 |             cat(prepended_yaml, file = temporary_Rmds[next_document])
343 |         }
344 |     }
345 |     components_and_scripts = c(temporary_Rmds, component_Rmds)
346 |     for (i in seq_along(components_and_scripts)) {
347 |         opts_chunk$set(eval = FALSE, cache = FALSE)
348 |         # if we call render_site on the .R file directly it adds a header I don't like
349 |         rmarkdown::render_site(components_and_scripts[i], quiet = TRUE)
350 |     }
351 |     opts_chunk$set(eval = TRUE, cache = TRUE)
352 |     unlink(temporary_Rmds)
353 | }
354 |
355 |
356 |

Output options

357 |

use pander to pretty-print objects (if possible)

358 |
opts_chunk$set(
359 |     render = pander_handler
360 |     )
361 |

don’t split tables, scroll horizontally

362 |
panderOptions("table.split.table", Inf)
363 |
364 |
365 |

Knitr components

366 |

summarise regression using a “knitr component”

367 |
regression_summary = function(model, indent = "##") {
368 |     model_name = deparse(substitute(model_name))
369 |     old_opt = options('knitr.duplicate.label')$knitr.duplicate.label
370 |     options(knitr.duplicate.label = 'allow')
371 |     on.exit(options(knitr.duplicate.label = old_opt))
372 |     options = list(
373 |         fig.path = paste0(knitr::opts_chunk$get("fig.path"), model_name, "_"),
374 |         cache.path = paste0(knitr::opts_chunk$get("cache.path"), model_name, "_")
375 |     )
376 |     formr::asis_knit_child("_regression_summary.Rmd", options = options)
377 | }
378 |
379 |
380 | 381 |
LS0tCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9mb2xkaW5nOiAnc2hvdycKLS0tCgoKIyBIZWxwZXIgZnVuY3Rpb25zIHVzZWQgdGhyb3VnaG91dCB7LnRhYnNldCAudGFic2V0LXN0aWNreX0KZG9jdW1lbnRhdGlvbiBvbiB0aGUgZnVuY3Rpb25zIGlzIGludGVyc3BlcnNlZCB0aHJvdWdoIGNvZGUgY29tbWVudHMKCiMjIHNldCBzb21lIG9wdGlvbnMKZG9udCBzaG93IG1lc3NhZ2VzIHdoZW4gbG9hZGluZyBsaWJyYXJpZXMKCmBgYHtyIH0KIyBsaWJyYXJ5ID0gZnVuY3Rpb24oLi4uKSBzdXBwcmVzc01lc3NhZ2VzKGJhc2U6OmxpYnJhcnkoLi4uKSkKYGBgCgpuZXZlciBzZXQgc3RyaW5ncyBhcyBmYWN0b3JzIGF1dG9tYXRpY2FsbHkgKGdvb2dsZSBmb3IgcmVhc29uIHdoeSkKCmBgYHtyIH0Kb3B0aW9ucyhzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UpCmBgYAoKc2hvdyBmb3VyIHNpZ25pZmljYW50IGRpZ2l0cyB0b3BzCgpgYGB7ciB9Cm9wdGlvbnMoZGlnaXRzID0gNCkKYGBgCgp0ZW5kIG5vdCB0byBzaG93IHNjaWVudGlmaWMgbm90YXRpb24sIGJlY2F1c2Ugd2UncmUganVzdCBwc3ljaG9sb2dpc3RzCgpgYGB7ciB9Cm9wdGlvbnMoc2NpcGVuID0gNykKYGBgCgptYWtlIG91dHB1dCBhIGJpdCB3aWRlcgoKYGBge3IgfQpvcHRpb25zKHdpZHRoID0gMTEwKQpgYGAKCnNldCBhIHNlZWQgdG8gbWFrZSBhbmFseXNlcyBkZXBlbmRpbmcgb24gcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIHJlcHJvZHVjaWJsZQoKYGBge3IgfQpzZXQuc2VlZCgxNzEwKSAjIGlmIHlvdSB1c2UgeW91ciBzaWduaWZpY2FudCBvdGhlcidzIGJpcnRoZGF5IG1ha2Ugc3VyZSB5b3Ugc3RheSB0b2dldGhlciBmb3IgdGhlIHNha2Ugb2YgcmVwcm9kdWNpYmlsaXR5CmBgYAoKIyMgTG9hZCBwYWNrYWdlcwpnZW5lcmF0ZSB0aGUgc2l0ZQoKYGBge3IgfQpsaWJyYXJ5KHJtYXJrZG93bikKYGBgCgpzZXQgb3B0aW9ucyBmb3IgY2h1bmtzCgpgYGB7ciB9CmxpYnJhcnkoa25pdHIpCmBgYAoKbXkgZm9ybXIgdXRpbGl0eSBwYWNrYWdlIHRvIGdlbmVyYXRlIGUuZy4gdGhlIGJpYmxpb2dyYXBoeQoKYGBge3IgfQpsaWJyYXJ5KGZvcm1yKQpgYGAKCnByZXR0eS1wcmludGVkIG91dHB1dAoKYGBge3IgfQpsaWJyYXJ5KHBhbmRlcikKYGBgCgp0aWR5dmVyc2UgZGF0ZSB0aW1lcwoKYGBge3IgfQpsaWJyYXJ5KGx1YnJpZGF0ZSkKYGBgCgp0aWR5dmVyc2Ugc3RyaW5ncwoKYGBge3IgfQpsaWJyYXJ5KHN0cmluZ3IpCmBgYAoKZXh0cmFjdG9yIGZ1bmN0aW9ucyBmb3IgbW9kZWxzCgpgYGB7ciB9CmxpYnJhcnkoYnJvb20pCmBgYAoKZ3JhbW1hciBvZiBncmFwaGljcyBwbG90cwoKYGBge3IgfQpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKdGlkeXZlcnNlOiB0cmFuc2Zvcm0gZGF0YSB3aWRlIHRvIGxvbmcKCmBgYHtyIH0KbGlicmFyeSh0aWR5cikKYGBgCgp0aWR5dmVyc2Utc3R5bGUgZGF0YSB3cmFuZ2xpbmcuIGhhcyBhIGxvdCBvZiBuYW1pbmcgY29uZmxpY3RzLCBzbyBhbHdheXMgbG9hZCBsYXN0CgpgYGB7ciB9CmxpYnJhcnkoZHBseXIpCmBgYAoKc29tZSBwYWNrYWdlcyBtYXkgYmUgbmVlZGVkIHdpdGhvdXQgYmVpbmcgbG9hZGVkCgpgYGB7ciB9CmZvb2xfcGFja3JhdCA9IGZ1bmN0aW9uKCkgewoJIyBuZWVkZWQgdG8gaW5zdGFsbCBmb3JtciBwYWNrYWdlCglsaWJyYXJ5KGRldnRvb2xzKQoJIyBuZWVkZWQgdG8gYWN0dWFsbHkgcnVuIHJtYXJrZG93biBpbiBSU3R1ZGlvLCBidXQgZm9yIHNvbWUgcmVhc29uIG5vdCBpbiBpdHMgZGVwZW5kZW5jaWVzCglsaWJyYXJ5KGZvcm1hdFIpCn0KYGBgCgojIyBTcGluIFIgZmlsZXMKUiBzY3JpcHRzIGNhbiBiZSBkb2N1bWVudGVkIGluIG1hcmtkb3duIHVzaW5nIFJveHlnZW4gY29tbWVudHMsIGFzIGRlbW9uc3RyYXRlZCBoZXJlClRoaXMgZnVuY3Rpb24gdHVybnMgYWxsIFIgZmlsZXMgKHRoYXQgZG9uJ3QgaGF2ZSBhbiBSbWQgZmlsZSBvZiB0aGUgc2FtZSBuYW1lIGFuZCB0aGF0IGRvbid0IHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZSBfKSBpbnRvIEhUTUwgcGFnZXMKCmBgYHtyIH0Kc3Bpbl9SX2ZpbGVzX3RvX3NpdGVfaHRtbCA9IGZ1bmN0aW9uKCkgewoJbGlicmFyeShrbml0cikKCWFsbF9ScyA9IGMobGlzdC5maWxlcyhwYXR0ZXJuID0gIl5bXl9dLitcXC5SJCIpLCAiLlJwcm9maWxlIikKCWNvbXBvbmVudF9SbWRzID0gbGlzdC5maWxlcyhwYXR0ZXJuID0gIl5fLitcXC5SbWQkIikKCXRlbXBvcmFyeV9SbWRzID0gYygpCglmb3IgKGkgaW4gc2VxX2Fsb25nKGFsbF9ScykpIHsKCQlpZihhbGxfUnNbaV0gPT0gIi5ScHJvZmlsZSIpIHsKCQkJUm1kX2ZpbGUgPSAiLlJwcm9maWxlLlJtZCIKCQl9IGVsc2UgewoJCQlSbWRfZmlsZSA9IHBhc3RlMChhbGxfUnNbaV0sICJtZCIpCgkJfQoJCWlmICghZmlsZS5leGlzdHMoUm1kX2ZpbGUpKSB7CgkJCW5leHRfZG9jdW1lbnQgPSBsZW5ndGgodGVtcG9yYXJ5X1JtZHMpICsgMQoJCQl0ZW1wb3JhcnlfUm1kc1tuZXh0X2RvY3VtZW50XSA9IHNwaW4oYWxsX1JzW2ldLCBrbml0ID0gRkFMU0UsIGVudmlyID0gbmV3LmVudigpLCBmb3JtYXQgPSAiUm1kIikKCQkJcHJlcGVuZGVkX3lhbWwgPSBwYXN0ZTAoYygiLS0tCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9mb2xkaW5nOiAnc2hvdycKLS0tCgoiLCByZWFkTGluZXModGVtcG9yYXJ5X1JtZHNbbmV4dF9kb2N1bWVudF0pKSwgY29sbGFwc2UgPSAiXG4iKQoJCQljYXQocHJlcGVuZGVkX3lhbWwsIGZpbGUgPSB0ZW1wb3JhcnlfUm1kc1tuZXh0X2RvY3VtZW50XSkKCQl9Cgl9Cgljb21wb25lbnRzX2FuZF9zY3JpcHRzID0gYyh0ZW1wb3JhcnlfUm1kcywgY29tcG9uZW50X1JtZHMpCglmb3IgKGkgaW4gc2VxX2Fsb25nKGNvbXBvbmVudHNfYW5kX3NjcmlwdHMpKSB7CgkJb3B0c19jaHVuayRzZXQoZXZhbCA9IEZBTFNFLCBjYWNoZSA9IEZBTFNFKQoJCSMgaWYgd2UgY2FsbCByZW5kZXJfc2l0ZSBvbiB0aGUgLlIgZmlsZSBkaXJlY3RseSBpdCBhZGRzIGEgaGVhZGVyIEkgZG9uJ3QgbGlrZQoJCXJtYXJrZG93bjo6cmVuZGVyX3NpdGUoY29tcG9uZW50c19hbmRfc2NyaXB0c1tpXSwgcXVpZXQgPSBUUlVFKQoJfQoJb3B0c19jaHVuayRzZXQoZXZhbCA9IFRSVUUsIGNhY2hlID0gVFJVRSkKCXVubGluayh0ZW1wb3JhcnlfUm1kcykKfQpgYGAKCiMjIE91dHB1dCBvcHRpb25zCnVzZSBwYW5kZXIgdG8gcHJldHR5LXByaW50IG9iamVjdHMgKGlmIHBvc3NpYmxlKQoKYGBge3IgfQpvcHRzX2NodW5rJHNldCgKCXJlbmRlciA9IHBhbmRlcl9oYW5kbGVyCgkpCmBgYAoKZG9uJ3Qgc3BsaXQgdGFibGVzLCBzY3JvbGwgaG9yaXpvbnRhbGx5CgpgYGB7ciB9CnBhbmRlck9wdGlvbnMoInRhYmxlLnNwbGl0LnRhYmxlIiwgSW5mKQpgYGAKCiMjIEtuaXRyIGNvbXBvbmVudHMKCnN1bW1hcmlzZSByZWdyZXNzaW9uIHVzaW5nIGEgImtuaXRyIGNvbXBvbmVudCIKCmBgYHtyIH0KcmVncmVzc2lvbl9zdW1tYXJ5ID0gZnVuY3Rpb24obW9kZWwsIGluZGVudCA9ICIjIyIpIHsKCW1vZGVsX25hbWUgPSBkZXBhcnNlKHN1YnN0aXR1dGUobW9kZWxfbmFtZSkpCglvbGRfb3B0ID0gb3B0aW9ucygna25pdHIuZHVwbGljYXRlLmxhYmVsJykka25pdHIuZHVwbGljYXRlLmxhYmVsCglvcHRpb25zKGtuaXRyLmR1cGxpY2F0ZS5sYWJlbCA9ICdhbGxvdycpCglvbi5leGl0KG9wdGlvbnMoa25pdHIuZHVwbGljYXRlLmxhYmVsID0gb2xkX29wdCkpCglvcHRpb25zID0gbGlzdCgKCQlmaWcucGF0aCA9IHBhc3RlMChrbml0cjo6b3B0c19jaHVuayRnZXQoImZpZy5wYXRoIiksIG1vZGVsX25hbWUsICJfIiksCgkJY2FjaGUucGF0aCA9IHBhc3RlMChrbml0cjo6b3B0c19jaHVuayRnZXQoImNhY2hlLnBhdGgiKSwgbW9kZWxfbmFtZSwgIl8iKQoJKQoJZm9ybXI6OmFzaXNfa25pdF9jaGlsZCgiX3JlZ3Jlc3Npb25fc3VtbWFyeS5SbWQiLCBvcHRpb25zID0gb3B0aW9ucykKfQpgYGAK
382 | 383 | 384 | 385 |
386 | 387 | 399 | 400 | 401 | 409 | 410 | 411 | 412 | -------------------------------------------------------------------------------- /docs/1_wrangle_data.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 70 | 75 | 76 | 77 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 134 | 135 | 136 | 169 | 170 | 187 | 188 | 189 |
190 | 191 | 192 | 197 | 198 | 199 | 202 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 251 | 252 | 268 | 269 | 270 |
271 |

Wrangle data

272 |
source("0_helpers.R")
273 |
274 |

Wrangle wrangle

275 |
data("msleep")
276 | msleep %>% 
277 |     mutate(eats = factor(recode(vore, "carni" = "meat", "omni" = "everything", "herbi" = "plants", "insecti" = "insects"), c("everything","plants", "insects", "meat"))) ->
278 | msleep
279 |
280 |
281 |

Save data

282 |
saveRDS(msleep, file = "msleep_processed.rds")
283 |
284 |
285 | 286 |
LS0tCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9mb2xkaW5nOiAic2hvdyIKLS0tCgojIFdyYW5nbGUgZGF0YSB7LnRhYnNldCAudGFic2V0LXN0aWNreX0KCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CnNvdXJjZSgiMF9oZWxwZXJzLlIiKQpgYGAKCiMjIFdyYW5nbGUgd3JhbmdsZQoKYGBge3J9CmRhdGEoIm1zbGVlcCIpCm1zbGVlcCAlPiUgCgltdXRhdGUoZWF0cyA9IGZhY3RvcihyZWNvZGUodm9yZSwgImNhcm5pIiA9ICJtZWF0IiwgIm9tbmkiID0gImV2ZXJ5dGhpbmciLCAiaGVyYmkiID0gInBsYW50cyIsICJpbnNlY3RpIiA9ICJpbnNlY3RzIiksIGMoImV2ZXJ5dGhpbmciLCJwbGFudHMiLCAiaW5zZWN0cyIsICJtZWF0IikpKSAtPgptc2xlZXAKYGBgCgojIyBTYXZlIGRhdGEKYGBge3J9CnNhdmVSRFMobXNsZWVwLCBmaWxlID0gIm1zbGVlcF9wcm9jZXNzZWQucmRzIikKYGBgCgo=
287 | 288 | 289 | 290 |
291 | 292 | 304 | 305 | 306 | 314 | 315 | 316 | 317 | -------------------------------------------------------------------------------- /docs/2_descriptives_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/2_descriptives_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/2_descriptives_files/figure-html/unnamed-chunk-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/2_descriptives_files/figure-html/unnamed-chunk-4-2.png -------------------------------------------------------------------------------- /docs/2_descriptives_files/figure-html/unnamed-chunk-4-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/2_descriptives_files/figure-html/unnamed-chunk-4-3.png -------------------------------------------------------------------------------- /docs/2_descriptives_files/figure-html/unnamed-chunk-4-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/2_descriptives_files/figure-html/unnamed-chunk-4-4.png -------------------------------------------------------------------------------- /docs/3_analyses.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 70 | 75 | 76 | 77 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 134 | 135 | 136 | 169 | 170 | 187 | 188 | 189 |
190 | 191 | 192 | 197 | 198 | 199 | 202 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 251 | 252 | 268 | 269 | 270 |
271 |

Analyses

272 |
source("0_helpers.R")
273 |
274 |

Load data

275 |
msleep = readRDS("msleep_processed.rds")
276 |
277 |
278 |

Basic model

279 |
m1 = lm(sleep_rem ~ sleep_total, data = msleep)
280 | regression_summary(m1)
281 |
if (!exists("indent")) {
282 |     indent = '##' # ugly hack so _regression_summary can be "spun" (variables included via `r ` have to be available)
283 | }
284 |
285 |

Summary

286 |
summary(model)
287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 |
EstimateStd. Errort valuePr(>|t|)
-0.36130.2783-1.2980.1993
0.21530.024598.7562.916e-12
317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 |
Fitting linear model: sleep_rem ~ sleep_total
ObservationsResidual Std. Error\(R^2\)Adjusted \(R^2\)
610.86340.56510.5578
342 |
343 |
344 |

Diagnostics

345 |
plot(model)
346 |

347 |
348 |
349 |
350 |

Super-advanced model

351 |
m2 = lm(sleep_rem ~ sleep_total + log(brainwt) + log(bodywt) + eats, data = msleep)
352 | regression_summary(m2)
353 |
if (!exists("indent")) {
354 |     indent = '##' # ugly hack so _regression_summary can be "spun" (variables included via `r ` have to be available)
355 | }
356 |
357 |

Summary

358 |
summary(model)
359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 |
EstimateStd. Errort valuePr(>|t|)
-1.7310.9195-1.8830.06787
0.18790.038144.9260.00001886
-0.37470.1946-1.9260.06203
0.36480.15272.390.02223
-0.57070.3218-1.7730.08464
0.37570.4860.77310.4445
0.28370.38640.73440.4675
419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 |
Fitting linear model: sleep_rem ~ sleep_total + log(brainwt) + log(bodywt) + eats
ObservationsResidual Std. Error\(R^2\)Adjusted \(R^2\)
430.79320.64080.5809
444 |
445 |
446 |

Diagnostics

447 |
plot(model)
448 |

449 |
450 |
451 |
452 |

Summary

453 |
bind_rows(
454 |     "Model 1" = glance(m1), 
455 |     "Model 2" = glance(m2),
456 | .id = "Model") %>% arrange(AIC) %>% select(Model, adj.r.squared, BIC, deviance, df.residual)
457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 |
Modeladj.r.squaredBICdeviancedf.residual
Model 20.5809124.622.6536
Model 10.5578165.543.9859
491 |
492 |
493 | 494 |
IyBBbmFseXNlcyB7LnRhYnNldCAudGFic2V0LXN0aWNreX0KCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CnNvdXJjZSgiMF9oZWxwZXJzLlIiKQpgYGAKCiMjIExvYWQgZGF0YQoKYGBge3J9Cm1zbGVlcCA9IHJlYWRSRFMoIm1zbGVlcF9wcm9jZXNzZWQucmRzIikKYGBgCgojIyBCYXNpYyBtb2RlbCB7LnRhYnNldCAudGFic2V0LXN0aWNreX0KCmBgYHtyfQptMSA9IGxtKHNsZWVwX3JlbSB+IHNsZWVwX3RvdGFsLCBkYXRhID0gbXNsZWVwKQpyZWdyZXNzaW9uX3N1bW1hcnkobTEpCmBgYAoKIyMgU3VwZXItYWR2YW5jZWQgbW9kZWwgey5hY3RpdmUgLnRhYnNldCAudGFic2V0LXN0aWNreX0KCmBgYHtyfQptMiA9IGxtKHNsZWVwX3JlbSB+IHNsZWVwX3RvdGFsICsgbG9nKGJyYWlud3QpICsgbG9nKGJvZHl3dCkgKyBlYXRzLCBkYXRhID0gbXNsZWVwKQpyZWdyZXNzaW9uX3N1bW1hcnkobTIpCmBgYAoKIyMgU3VtbWFyeQoKYGBge3J9CmJpbmRfcm93cygKCSJNb2RlbCAxIiA9IGdsYW5jZShtMSksIAoJIk1vZGVsIDIiID0gZ2xhbmNlKG0yKSwKLmlkID0gIk1vZGVsIikgJT4lIGFycmFuZ2UoQUlDKSAlPiUgc2VsZWN0KE1vZGVsLCBhZGouci5zcXVhcmVkLCBCSUMsIGRldmlhbmNlLCBkZi5yZXNpZHVhbCkKYGBgCgo=
495 | 496 | 497 | 498 |
499 | 500 | 512 | 513 | 514 | 522 | 523 | 524 | 525 | -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-1.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-2.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-3.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-4.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-8-1.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-8-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-8-2.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-8-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-8-3.png -------------------------------------------------------------------------------- /docs/3_analyses_files/figure-html/model_name_diagnostics-8-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/3_analyses_files/figure-html/model_name_diagnostics-8-4.png -------------------------------------------------------------------------------- /docs/README.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 69 | 74 | 75 | 76 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 133 | 134 | 135 | 168 | 169 | 186 | 187 | 188 |
189 | 190 | 191 | 196 | 197 | 198 | 201 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 250 | 251 | 267 | 268 | 269 |
270 |

Reproducible web stack

271 |

This is a stack of tools that have served me well to generate reproducible websites. Some defaults were set to make things more seamless and I added some files to show it works. This is a fairly opinionated approach and your mileage may vary.

272 |

The website generated from these scripts can be viewed at:
273 | https://rubenarslan.github.io/repro_web_stack

274 |
275 |
276 |

Requirements to get started

277 | 282 |
283 |
284 |

Set up

285 |

Here’s how to set up:

286 |
    287 |
  1. (Optional, if you have a Github account already or are willing to create one). Fork this repository (top right).

  2. 288 |
  3. Open RStudio. In the top right menu “project menu”, click new project.

  4. 289 |
  5. In the dialog box that appears, click “Version Control”. Copy-paste the URL from your repository (it will be https://github.com/rubenarslan/repro_web_stack except with your username, if you forked it). Create the project (you can pick a different name if you’d like).

  6. 290 |
  7. In RStudio packrat should start installing packages, if not, consider running

    291 |
    packrat::restore() # this should run by default if you open the project in an up-to-date RStudio version
    292 | packrat::disable() # because packrat is a bit immature, it's probably easier to only turn it on at the end, when you archive your project. It may make sense to put up with the immaturities if you're working on a lot of projects in parallel.
  8. 293 |
  9. Now try whether you can generate the website by clicking “Knit” in the file 1_wrangle_data.Rmd, then try the other files, then modify them to suit your project.

  10. 294 |
295 |
296 |
297 |

Configuration

298 |

Here’s a few files you might want to edit:

299 |
    300 |
  1. .zenodo.json this file contains the metadata that will be used to describe your releases on Zenodo. Add the project name and the authors in this file.

  2. 301 |
  3. _site.yml here you can set up a few global settings for how your site should look like. More information.

  4. 302 |
  5. 0_helpers.R - here I load a few packages that I tend to always use. I think it makes sense to load a basic set of packages in this helper file and include it everywhere. Load order matters hugely in R (especially when you use dplyr, which has lots of name conflicts with other packages) and it can simplify things for you, when you know the load order. I’ve also set a few defaults here that make sense to me.

  6. 303 |
  7. The name of the .Rproj file to something descriptive of your project (and correspondingly, the name on Github).

  8. 304 |
305 |
306 |
307 |

Releasing to Zenodo

308 |

To release to Zenodo via the API, your repository needs to be public. Then, go to Zenodo, connect your Github account, flip the switch next to the project name and make a release on Github. It will automatically be uploaded to Zenodo and you will get a DOI, like this DOI.

309 |

If you don’t want your R-code to be public, but only the HTML files, you can either: zip the contents of the “docs” folder and upload that to Zenodo by hand or you can make a separate, public repository for your HTML files and check this out in your “docs” folder.

310 |
311 |
312 |

Notes

313 |
314 |

Accessing the generated site on Github pages.

315 |

After a bit of trial and error with my students, I think the best option for beginners to release the website you generated, is to serve it from the “docs” folder in your repository. You will have to go to your repository settings on Github and pick “docs” as the Github Pages option.

316 |
317 |
318 | 319 |
IyMgUmVwcm9kdWNpYmxlIHdlYiBzdGFjawoKVGhpcyBpcyBhIHN0YWNrIG9mIHRvb2xzIHRoYXQgaGF2ZSBzZXJ2ZWQgbWUgd2VsbCB0byBnZW5lcmF0ZSByZXByb2R1Y2libGUgd2Vic2l0ZXMuClNvbWUgZGVmYXVsdHMgd2VyZSBzZXQgdG8gbWFrZSB0aGluZ3MgbW9yZSBzZWFtbGVzcyBhbmQgSSBhZGRlZCBzb21lIGZpbGVzIHRvIHNob3cgaXQgd29ya3MuIFRoaXMgaXMgYSBmYWlybHkgb3BpbmlvbmF0ZWQgYXBwcm9hY2ggYW5kIHlvdXIgbWlsZWFnZSBtYXkgdmFyeS4KClRoZSB3ZWJzaXRlIGdlbmVyYXRlZCBmcm9tIHRoZXNlIHNjcmlwdHMgY2FuIGJlIHZpZXdlZCBhdDogIApodHRwczovL3J1YmVuYXJzbGFuLmdpdGh1Yi5pby9yZXByb193ZWJfc3RhY2sKCiMjIFJlcXVpcmVtZW50cyB0byBnZXQgc3RhcnRlZAoKLSBbUlN0dWRpb10oaHR0cHM6Ly93d3cucnN0dWRpby5jb20vcHJvZHVjdHMvcnN0dWRpby9kb3dubG9hZC8pIDEuKgotIFtSXShodHRwczovL2NyYW4ucnN0dWRpby5jb20vKSAzLioKLSBbR2l0XShodHRwczovL2dpdC1zY20uY29tL2Jvb2svZW4vdjIvR2V0dGluZy1TdGFydGVkLUluc3RhbGxpbmctR2l0KSAoc2hvdWxkIGFscmVhZHkgYmUgaW5zdGFsbGVkIG9uIE1hYyBPUyBNYXZlcmlja3MgYW5kIGFib3ZlKQoKIyMgU2V0IHVwCkhlcmUncyBob3cgdG8gc2V0IHVwOgoKMS4gKE9wdGlvbmFsLCBpZiB5b3UgaGF2ZSBhIEdpdGh1YiBhY2NvdW50IGFscmVhZHkgb3IgYXJlIHdpbGxpbmcgdG8gY3JlYXRlIG9uZSkuIEZvcmsgdGhpcyByZXBvc2l0b3J5ICh0b3AgcmlnaHQpLgoKMi4gT3BlbiBSU3R1ZGlvLiBJbiB0aGUgdG9wIHJpZ2h0IG1lbnUgInByb2plY3QgbWVudSIsIGNsaWNrIG5ldyBwcm9qZWN0LgoKMy4gSW4gdGhlIGRpYWxvZyBib3ggdGhhdCBhcHBlYXJzLCBjbGljayAiVmVyc2lvbiBDb250cm9sIi4gQ29weS1wYXN0ZSB0aGUgVVJMIGZyb20geW91ciByZXBvc2l0b3J5IChpdCB3aWxsIGJlIGBodHRwczovL2dpdGh1Yi5jb20vcnViZW5hcnNsYW4vcmVwcm9fd2ViX3N0YWNrYCBleGNlcHQgd2l0aCB5b3VyIHVzZXJuYW1lLCBpZiB5b3UgZm9ya2VkIGl0KS4gQ3JlYXRlIHRoZSBwcm9qZWN0ICh5b3UgY2FuIHBpY2sgYSBkaWZmZXJlbnQgbmFtZSBpZiB5b3UnZCBsaWtlKS4KCjMuIEluIFJTdHVkaW8gcGFja3JhdCBzaG91bGQgc3RhcnQgaW5zdGFsbGluZyBwYWNrYWdlcywgaWYgbm90LCBjb25zaWRlciBydW5uaW5nCgoJYGBgcgoJcGFja3JhdDo6cmVzdG9yZSgpICMgdGhpcyBzaG91bGQgcnVuIGJ5IGRlZmF1bHQgaWYgeW91IG9wZW4gdGhlIHByb2plY3QgaW4gYW4gdXAtdG8tZGF0ZSBSU3R1ZGlvIHZlcnNpb24KCXBhY2tyYXQ6OmRpc2FibGUoKSAjIGJlY2F1c2UgcGFja3JhdCBpcyBhIGJpdCBpbW1hdHVyZSwgaXQncyBwcm9iYWJseSBlYXNpZXIgdG8gb25seSB0dXJuIGl0IG9uIGF0IHRoZSBlbmQsIHdoZW4geW91IGFyY2hpdmUgeW91ciBwcm9qZWN0LiBJdCBtYXkgbWFrZSBzZW5zZSB0byBwdXQgdXAgd2l0aCB0aGUgaW1tYXR1cml0aWVzIGlmIHlvdSdyZSB3b3JraW5nIG9uIGEgbG90IG9mIHByb2plY3RzIGluIHBhcmFsbGVsLgoJYGBgCgo1LiBOb3cgdHJ5IHdoZXRoZXIgeW91IGNhbiBnZW5lcmF0ZSB0aGUgd2Vic2l0ZSBieSBjbGlja2luZyAiS25pdCIgaW4gdGhlIGZpbGUgYDFfd3JhbmdsZV9kYXRhLlJtZGAsIHRoZW4gdHJ5IHRoZSBvdGhlciBmaWxlcywgdGhlbiBtb2RpZnkgdGhlbSB0byBzdWl0IHlvdXIgcHJvamVjdC4KCiMjIENvbmZpZ3VyYXRpb24KCkhlcmUncyBhIGZldyBmaWxlcyB5b3UgbWlnaHQgd2FudCB0byBlZGl0OgoKMS4gYC56ZW5vZG8uanNvbmAgdGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBtZXRhZGF0YSB0aGF0IHdpbGwgYmUgdXNlZCB0byBkZXNjcmliZSB5b3VyIHJlbGVhc2VzIG9uIFplbm9kby4gQWRkIHRoZSBwcm9qZWN0IG5hbWUgYW5kIHRoZSBhdXRob3JzIGluIHRoaXMgZmlsZS4KCjIuIGBfc2l0ZS55bWxgIGhlcmUgeW91IGNhbiBzZXQgdXAgYSBmZXcgZ2xvYmFsIHNldHRpbmdzIGZvciBob3cgeW91ciBzaXRlIHNob3VsZCBsb29rIGxpa2UuIFtNb3JlIGluZm9ybWF0aW9uXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tL3JtYXJrZG93bl93ZWJzaXRlcy5odG1sKS4KCjMuIGAwX2hlbHBlcnMuUmAgLSBoZXJlIEkgbG9hZCBhIGZldyBwYWNrYWdlcyB0aGF0IEkgdGVuZCB0byBhbHdheXMgdXNlLiBJIHRoaW5rIGl0IG1ha2VzIHNlbnNlIHRvIGxvYWQgYSBiYXNpYyBzZXQgb2YgcGFja2FnZXMgaW4gdGhpcyBoZWxwZXIgZmlsZSBhbmQgaW5jbHVkZSBpdCBldmVyeXdoZXJlLiBMb2FkIG9yZGVyIG1hdHRlcnMgaHVnZWx5IGluIFIgKGVzcGVjaWFsbHkgd2hlbiB5b3UgdXNlIGRwbHlyLCB3aGljaCBoYXMgbG90cyBvZiBuYW1lIGNvbmZsaWN0cyB3aXRoIG90aGVyIHBhY2thZ2VzKSBhbmQgaXQgY2FuIHNpbXBsaWZ5IHRoaW5ncyBmb3IgeW91LCB3aGVuIHlvdSBrbm93IHRoZSBsb2FkIG9yZGVyLiBJJ3ZlIGFsc28gc2V0IGEgZmV3IGRlZmF1bHRzIGhlcmUgdGhhdCBtYWtlIHNlbnNlIHRvIG1lLgoKNC4gVGhlIG5hbWUgb2YgdGhlIGAuUnByb2pgIGZpbGUgdG8gc29tZXRoaW5nIGRlc2NyaXB0aXZlIG9mIHlvdXIgcHJvamVjdCAoYW5kIGNvcnJlc3BvbmRpbmdseSwgdGhlIG5hbWUgb24gR2l0aHViKS4KCiMjIFJlbGVhc2luZyB0byBaZW5vZG8KClRvIHJlbGVhc2UgdG8gWmVub2RvIHZpYSB0aGUgQVBJLCB5b3VyIHJlcG9zaXRvcnkgbmVlZHMgdG8gYmUgcHVibGljLiBUaGVuLCBnbyB0byBbWmVub2RvXShodHRwczovL3plbm9kby5vcmcvKSwgY29ubmVjdCB5b3VyIEdpdGh1YiBhY2NvdW50LCBmbGlwIHRoZSBzd2l0Y2ggbmV4dCB0byB0aGUgcHJvamVjdCBuYW1lIGFuZCBtYWtlIGEgcmVsZWFzZSBvbiBHaXRodWIuIEl0IHdpbGwgYXV0b21hdGljYWxseSBiZSB1cGxvYWRlZCB0byBaZW5vZG8gYW5kIHlvdSB3aWxsIGdldCBhIERPSSwgbGlrZSB0aGlzIFshW0RPSV0oaHR0cHM6Ly96ZW5vZG8ub3JnL2JhZGdlL0RPSS8xMC41MjgxL3plbm9kby4yNjg4ODguc3ZnKV0oaHR0cHM6Ly9kb2kub3JnLzEwLjUyODEvemVub2RvLjI2ODg4OCkuCgpJZiB5b3UgZG9uJ3Qgd2FudCB5b3VyIFItY29kZSB0byBiZSBwdWJsaWMsIGJ1dCBvbmx5IHRoZSBIVE1MIGZpbGVzLCB5b3UgY2FuIGVpdGhlcjogemlwIHRoZSBjb250ZW50cyBvZiB0aGUgImRvY3MiIGZvbGRlciBhbmQgdXBsb2FkIHRoYXQgdG8gWmVub2RvIGJ5IGhhbmQgb3IgeW91IGNhbiBtYWtlIGEgc2VwYXJhdGUsIHB1YmxpYyByZXBvc2l0b3J5IGZvciB5b3VyIEhUTUwgZmlsZXMgYW5kIGNoZWNrIHRoaXMgb3V0IGluIHlvdXIgImRvY3MiIGZvbGRlci4KCiMjIE5vdGVzCgojIyMgQWNjZXNzaW5nIHRoZSBnZW5lcmF0ZWQgc2l0ZSBvbiBHaXRodWIgcGFnZXMuCgpBZnRlciBhIGJpdCBvZiB0cmlhbCBhbmQgZXJyb3Igd2l0aCBteSBzdHVkZW50cywgSSB0aGluayB0aGUgYmVzdCBvcHRpb24gZm9yIGJlZ2lubmVycyB0byByZWxlYXNlIHRoZSB3ZWJzaXRlIHlvdSBnZW5lcmF0ZWQsIGlzIHRvIHNlcnZlIGl0IGZyb20gdGhlICJkb2NzIiBmb2xkZXIgaW4geW91ciByZXBvc2l0b3J5LiBZb3Ugd2lsbCBoYXZlIHRvIGdvIHRvIHlvdXIgcmVwb3NpdG9yeSBzZXR0aW5ncyBvbiBHaXRodWIgYW5kIHBpY2sgImRvY3MiIGFzIHRoZSBHaXRodWIgUGFnZXMgb3B0aW9uLgo=
320 | 321 | 322 | 323 |
324 | 325 | 337 | 338 | 339 | 347 | 348 | 349 | 350 | -------------------------------------------------------------------------------- /docs/_regression_summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 70 | 75 | 76 | 77 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 134 | 135 | 136 | 169 | 170 | 187 | 188 | 189 |
190 | 191 | 192 | 197 | 198 | 199 | 202 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 251 | 252 | 268 | 269 | 270 |
if (!exists("indent")) {
271 |     indent = '##' # ugly hack so _regression_summary can be "spun" (variables included via `r ` have to be available)
272 | }
273 |
274 |

Summary

275 |
summary(model)
276 |
277 |
278 |

Diagnostics

279 |
plot(model)
280 |
281 | 282 |
YGBge3Igc2V0dXAsZXZhbD1UUlVFfQppZiAoIWV4aXN0cygiaW5kZW50IikpIHsKCWluZGVudCA9ICcjIycgIyB1Z2x5IGhhY2sgc28gX3JlZ3Jlc3Npb25fc3VtbWFyeSBjYW4gYmUgInNwdW4iICh2YXJpYWJsZXMgaW5jbHVkZWQgdmlhIGByIGAgaGF2ZSB0byBiZSBhdmFpbGFibGUpCn0KYGBgCgpgciBpbmRlbnRgIyBTdW1tYXJ5CmBgYHtyIHN1bW1hcnl9CnN1bW1hcnkobW9kZWwpCmBgYAoKYHIgaW5kZW50YCMgRGlhZ25vc3RpY3MKYGBge3IgZGlhZ25vc3RpY3N9CnBsb3QobW9kZWwpCmBgYAo=
283 | 284 | 285 | 286 |
287 | 288 | 300 | 301 | 302 | 310 | 311 | 312 | 313 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Reproducible website stack 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 70 | 75 | 76 | 77 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 134 | 135 | 136 | 169 | 170 | 187 | 188 | 189 |
190 | 191 | 192 | 197 | 198 | 199 | 202 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 251 | 252 | 268 | 269 | 270 |
271 |

Reproducible website stack

272 |
source("0_helpers.R")
273 |

We did this cool project.

274 |

We used these helper functions and this knitr component. These are the .Rprofile settings

275 |
    276 |
  1. First we wrangled the data.
  2. 277 |
  3. Then we looked at some descriptives.
  4. 278 |
  5. Then we analysed it.
  6. 279 |
280 |
281 |

Authors & Acknowledgements

282 |
283 |

Authors

284 |

You!

285 |

This supplementary website has been archived on Zenodo.org DOI.

286 |
287 |
288 |

Acknowledgements

289 |
290 |

Package bibliography

291 |
292 |
Session info
293 |
# Make packrat bibliography
294 | packrat_bibliography(overwrite_bib = TRUE, silent = TRUE)
295 |
## Warning in utils::citation(pkg_name): no date field in DESCRIPTION file of package 'pillar'
296 |
## Warning in utils::citation(pkg_name): could not determine year for 'pillar' from package DESCRIPTION file
297 |
# Turn the .R files into .Rmd files, turn those into .html, remove the .Rmd files
298 | spin_R_files_to_site_html()
299 | sessionInfo()
300 |

R version 3.4.3 (2017-11-30)

301 |

**Platform:** x86_64-apple-darwin15.6.0 (64-bit)

302 |

locale: en_US.UTF-8||en_US.UTF-8||en_US.UTF-8||C||en_US.UTF-8||en_US.UTF-8

303 |

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

304 |

other attached packages: DT(v.0.2), bindrcpp(v.0.2), dplyr(v.0.7.4), tidyr(v.0.7.2), ggplot2(v.2.2.1), broom(v.0.4.3), stringr(v.1.2.0), lubridate(v.1.7.1), pander(v.0.6.1), formr(v.0.7.1), knitr(v.1.18) and rmarkdown(v.1.8)

305 |

loaded via a namespace (and not attached): Rcpp(v.0.12.14), pillar(v.1.0.99.9000), compiler(v.3.4.3), plyr(v.1.8.4), bindr(v.0.1), base64enc(v.0.1-3), tools(v.3.4.3), digest(v.0.6.13), packrat(v.0.4.8-1), jsonlite(v.1.5), evaluate(v.0.10.1), tibble(v.1.4.1), gtable(v.0.2.0), nlme(v.3.1-131), lattice(v.0.20-35), pkgconfig(v.2.0.1), rlang(v.0.1.6), psych(v.1.7.3.21), parallel(v.3.4.3), yaml(v.2.1.16), htmlwidgets(v.0.9), tidyselect(v.0.2.3), rprojroot(v.1.2), grid(v.3.4.3), glue(v.1.2.0), R6(v.2.2.2), foreign(v.0.8-69), reshape2(v.1.4.3), purrr(v.0.2.4), magrittr(v.1.5), backports(v.1.1.2), scales(v.0.5.0), htmltools(v.0.3.6), assertthat(v.0.2.0), mnormt(v.1.5-5), colorspace(v.1.3-2), labeling(v.0.3), stringi(v.1.1.6), lazyeval(v.0.2.1) and munsell(v.0.4.3)

306 |
307 |
308 |
References
309 |
310 |
311 |

Allaire, J., Xie, Y., McPherson, J., Luraschi, J., Ushey, K., Atkins, A., … Chang, W. (2017). rmarkdown: Dynamic documents for R (R package version 1.8). Retrieved from https://CRAN.R-project.org/package=rmarkdown

312 |
313 |
314 |

Arslan, R. (2014). formr: Formr survey framework (R package version 0.7.1).

315 |
316 |
317 |

Daróczi, G., & Tsegelskyi, R. (2017). pander: An R ’pandoc’ writer (R package version 0.6.1). Retrieved from https://CRAN.R-project.org/package=pander

318 |
319 |
320 |

Grolemund, G., & Wickham, H. (2011). Dates and times made easy with lubridate (version 1.7.1). Journal of Statistical Software, 40, 1–25. Retrieved from http://www.jstatsoft.org/v40/i03/

321 |
322 |
323 |

R Core Team. (2017). R: A language and environment for statistical computing (version 3.4.3). Vienna, Austria: R Foundation for Statistical Computing. Retrieved from https://www.R-project.org/

324 |
325 |
326 |

Robinson, D. (2017). broom: Convert statistical analysis objects into tidy data frames (R package version 0.4.3). Retrieved from https://CRAN.R-project.org/package=broom

327 |
328 |
329 |

Ushey, K., McPherson, J., Cheng, J., Atkins, A., & Allaire, J. (2016). packrat: A dependency management system for projects and their R package dependencies (R package version 0.4.8-1). Retrieved from https://CRAN.R-project.org/package=packrat

330 |
331 |
332 |

Wickham, H. (2009). ggplot2: Elegant graphics for data analysis (version 2.2.1). Springer-Verlag New York. Retrieved from http://ggplot2.org

333 |
334 |
335 |

Wickham, H. (2017). stringr: Simple, consistent wrappers for common string operations (R package version 1.2.0). Retrieved from https://CRAN.R-project.org/package=stringr

336 |
337 |
338 |

Wickham, H., & Chang, W. (2017). devtools: Tools to make developing R packages easier (R package version 1.13.4). Retrieved from https://CRAN.R-project.org/package=devtools

339 |
340 |
341 |

Wickham, H., & Henry, L. (2017). tidyr: Easily tidy data with ’spread()’ and ’gather()’ functions (R package version 0.7.2). Retrieved from https://CRAN.R-project.org/package=tidyr

342 |
343 |
344 |

Wickham, H., Francois, R., Henry, L., & Müller, K. (2017). dplyr: A grammar of data manipulation (R package version 0.7.4). Retrieved from https://CRAN.R-project.org/package=dplyr

345 |
346 |
347 |

Xie, Y. (2017a). knitr: A general-purpose package for dynamic report generation in R (R package version 1.18). Retrieved from https://yihui.name/knitr/

348 |
349 |
350 |

Xie, Y. (2017b). formatR: Format R code automatically (R package version 1.5). Retrieved from https://CRAN.R-project.org/package=formatR

351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 | 359 |
LS0tCnBhZ2V0aXRsZTogIlJlcHJvZHVjaWJsZSB3ZWJzaXRlIHN0YWNrIgpiaWJsaW9ncmFwaHk6IHBhY2tyYXRfYmlibGlvZ3JhcGh5LmJpYnRleApjc2w6IGFwYS1jdXN0b20tbm8taXNzdWUuY3NsCm5vY2l0ZTogfAogICAgQFIgQHBhY2tyYXQgQHJtYXJrZG93biBAa25pdHIgQGZvcm1yIEBwYW5kZXIgQGx1YnJpZGF0ZSBAc3RyaW5nciBAYnJvb20gQGdncGxvdDIgQHRpZHlyIEBkcGx5ciBAZGV2dG9vbHMgQGZvcm1hdFIKLS0tCgojIFJlcHJvZHVjaWJsZSB3ZWJzaXRlIHN0YWNrIHsudGFic2V0IC50YWJzZXQtc3RpY2t5fQoKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0Kc291cmNlKCIwX2hlbHBlcnMuUiIpCmBgYAoKV2UgZGlkIHRoaXMgY29vbCBwcm9qZWN0LgoKV2UgdXNlZCB0aGVzZSBbaGVscGVyIGZ1bmN0aW9uc10oMF9oZWxwZXJzLmh0bWwpIGFuZCAKdGhpcyBba25pdHIgY29tcG9uZW50XShfcmVncmVzc2lvbl9zdW1tYXJ5Lmh0bWwpLiBUaGVzZSBhcmUgdGhlIFsuUnByb2ZpbGUgc2V0dGluZ3NdKC5ScHJvZmlsZS5odG1sKQoKMS4gRmlyc3Qgd2UgW3dyYW5nbGVkIHRoZSBkYXRhXSgxX3dyYW5nbGVfZGF0YS5odG1sKS4KMi4gVGhlbiB3ZSBsb29rZWQgYXQgc29tZSBbZGVzY3JpcHRpdmVzXSgyX2Rlc2NyaXB0aXZlcy5odG1sKS4KMy4gVGhlbiB3ZSBbYW5hbHlzZWRdKDNfYW5hbHlzZXMuaHRtbCkgaXQuCgojIyBBdXRob3JzICYgQWNrbm93bGVkZ2VtZW50cyB7LnRhYnNldCAudGFic2V0LXN0aWNreX0KCiMjIyBBdXRob3JzCllvdSEKClRoaXMgc3VwcGxlbWVudGFyeSB3ZWJzaXRlIGhhcyBiZWVuIGFyY2hpdmVkIG9uIFplbm9kby5vcmcgWyFbRE9JXShodHRwczovL3plbm9kby5vcmcvYmFkZ2UvRE9JLzEwLjUyODEvemVub2RvLjI2ODg4OC5zdmcpXShodHRwczovL2RvaS5vcmcvMTAuNTI4MS96ZW5vZG8uMjY4ODg4KS4KCiMjIyBBY2tub3dsZWRnZW1lbnRzIHsuYWN0aXZlfQoKCiMjIyMgUGFja2FnZSBiaWJsaW9ncmFwaHkgey50YWJzZXQgLnRhYnNldC1zdGlja3l9CgojIyMjIyBTZXNzaW9uIGluZm8KYGBge3J9CiMgTWFrZSBwYWNrcmF0IGJpYmxpb2dyYXBoeQpwYWNrcmF0X2JpYmxpb2dyYXBoeShvdmVyd3JpdGVfYmliID0gVFJVRSwgc2lsZW50ID0gVFJVRSkKIyBUdXJuIHRoZSAuUiBmaWxlcyBpbnRvIC5SbWQgZmlsZXMsIHR1cm4gdGhvc2UgaW50byAuaHRtbCwgcmVtb3ZlIHRoZSAuUm1kIGZpbGVzCnNwaW5fUl9maWxlc190b19zaXRlX2h0bWwoKQpzZXNzaW9uSW5mbygpCmBgYAoKIyMjIyMgUmVmZXJlbmNlcyB7LmFjdGl2ZX0K
360 | 361 | 362 | 363 |
364 | 365 | 377 | 378 | 379 | 387 | 388 | 389 | 390 | -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.5 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/Lato.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/Lato.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/LatoBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/LatoBold.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/LatoItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/LatoItalic.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycle.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycle.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycleBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycleBold.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSans.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBoldItalic.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansItalic.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLightItalic.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/Raleway.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/Raleway.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/RalewayBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/RalewayBold.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/Roboto.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoBold.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoLight.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoMedium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoMedium.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansPro.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansPro.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProBold.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProItalic.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProLight.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/css/fonts/Ubuntu.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/css/fonts/Ubuntu.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubenarslan/repro_web_stack/f2773cf035779df7a559d658b68ae2d0c07a8ba9/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/shim/html5shiv.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | // Only run this code in IE 8 5 | if (!!window.navigator.userAgent.match("MSIE 8")) { 6 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document); 7 | }; 8 | -------------------------------------------------------------------------------- /docs/site_libs/bootstrap-3.3.5/shim/respond.min.js: -------------------------------------------------------------------------------- 1 | /*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl 2 | * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT 3 | * */ 4 | 5 | // Only run this code in IE 8 6 | if (!!window.navigator.userAgent.match("MSIE 8")) { 7 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b'); 25 | if (show) 26 | div.addClass('in'); 27 | var id = 'rcode-643E0F36' + currentIndex++; 28 | div.attr('id', id); 29 | $(this).before(div); 30 | $(this).detach().appendTo(div); 31 | 32 | // add a show code button right above 33 | var showCodeText = $('' + (show ? 'Hide' : 'Code') + ''); 34 | var showCodeButton = $(''); 35 | showCodeButton.append(showCodeText); 36 | showCodeButton 37 | .attr('data-toggle', 'collapse') 38 | .attr('data-target', '#' + id) 39 | .attr('aria-expanded', show) 40 | .attr('aria-controls', id); 41 | 42 | var buttonRow = $('
'); 43 | var buttonCol = $('
'); 44 | 45 | buttonCol.append(showCodeButton); 46 | buttonRow.append(buttonCol); 47 | 48 | div.before(buttonRow); 49 | 50 | // update state of button on show/hide 51 | div.on('hidden.bs.collapse', function () { 52 | showCodeText.text('Code'); 53 | }); 54 | div.on('show.bs.collapse', function () { 55 | showCodeText.text('Hide'); 56 | }); 57 | }); 58 | 59 | } 60 | -------------------------------------------------------------------------------- /docs/site_libs/navigation-1.1/sourceembed.js: -------------------------------------------------------------------------------- 1 | 2 | window.initializeSourceEmbed = function(filename) { 3 | $("#rmd-download-source").click(function() { 4 | var src = $("#rmd-source-code").html(); 5 | var a = document.createElement('a'); 6 | a.href = "data:text/x-r-markdown;base64," + src; 7 | a.download = filename; 8 | document.body.appendChild(a); 9 | a.click(); 10 | document.body.removeChild(a); 11 | }); 12 | }; 13 | -------------------------------------------------------------------------------- /docs/site_libs/navigation-1.1/tabsets.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | /** 4 | * jQuery Plugin: Sticky Tabs 5 | * 6 | * @author Aidan Lister 7 | * adapted by Ruben Arslan to activate parent tabs too 8 | * http://www.aidanlister.com/2014/03/persisting-the-tab-state-in-bootstrap/ 9 | */ 10 | (function($) { 11 | "use strict"; 12 | $.fn.rmarkdownStickyTabs = function() { 13 | var context = this; 14 | // Show the tab corresponding with the hash in the URL, or the first tab 15 | var showStuffFromHash = function() { 16 | var hash = window.location.hash; 17 | var selector = hash ? 'a[href="' + hash + '"]' : 'li.active > a'; 18 | var $selector = $(selector, context); 19 | if($selector.data('toggle') === "tab") { 20 | $selector.tab('show'); 21 | // walk up the ancestors of this element, show any hidden tabs 22 | $selector.parents('.section.tabset').each(function(i, elm) { 23 | var link = $('a[href="#' + $(elm).attr('id') + '"]'); 24 | if(link.data('toggle') === "tab") { 25 | link.tab("show"); 26 | } 27 | }); 28 | } 29 | }; 30 | 31 | 32 | // Set the correct tab when the page loads 33 | showStuffFromHash(context); 34 | 35 | // Set the correct tab when a user uses their back/forward button 36 | $(window).on('hashchange', function() { 37 | showStuffFromHash(context); 38 | }); 39 | 40 | // Change the URL when tabs are clicked 41 | $('a', context).on('click', function(e) { 42 | history.pushState(null, null, this.href); 43 | showStuffFromHash(context); 44 | }); 45 | 46 | return this; 47 | }; 48 | }(jQuery)); 49 | 50 | window.buildTabsets = function(tocID) { 51 | 52 | // build a tabset from a section div with the .tabset class 53 | function buildTabset(tabset) { 54 | 55 | // check for fade and pills options 56 | var fade = tabset.hasClass("tabset-fade"); 57 | var pills = tabset.hasClass("tabset-pills"); 58 | var navClass = pills ? "nav-pills" : "nav-tabs"; 59 | 60 | // determine the heading level of the tabset and tabs 61 | var match = tabset.attr('class').match(/level(\d) /); 62 | if (match === null) 63 | return; 64 | var tabsetLevel = Number(match[1]); 65 | var tabLevel = tabsetLevel + 1; 66 | 67 | // find all subheadings immediately below 68 | var tabs = tabset.find("div.section.level" + tabLevel); 69 | if (!tabs.length) 70 | return; 71 | 72 | // create tablist and tab-content elements 73 | var tabList = $(''); 74 | $(tabs[0]).before(tabList); 75 | var tabContent = $('
'); 76 | $(tabs[0]).before(tabContent); 77 | 78 | // build the tabset 79 | var activeTab = 0; 80 | tabs.each(function(i) { 81 | 82 | // get the tab div 83 | var tab = $(tabs[i]); 84 | 85 | // get the id then sanitize it for use with bootstrap tabs 86 | var id = tab.attr('id'); 87 | 88 | // see if this is marked as the active tab 89 | if (tab.hasClass('active')) 90 | activeTab = i; 91 | 92 | // remove any table of contents entries associated with 93 | // this ID (since we'll be removing the heading element) 94 | $("div#" + tocID + " li a[href='#" + id + "']").parent().remove(); 95 | 96 | // sanitize the id for use with bootstrap tabs 97 | id = id.replace(/[.\/?&!#<>]/g, '').replace(/\s/g, '_'); 98 | tab.attr('id', id); 99 | 100 | // get the heading element within it, grab it's text, then remove it 101 | var heading = tab.find('h' + tabLevel + ':first'); 102 | var headingText = heading.html(); 103 | heading.remove(); 104 | 105 | // build and append the tab list item 106 | var a = $('' + headingText + ''); 107 | a.attr('href', '#' + id); 108 | a.attr('aria-controls', id); 109 | var li = $('
  • '); 110 | li.append(a); 111 | tabList.append(li); 112 | 113 | // set it's attributes 114 | tab.attr('role', 'tabpanel'); 115 | tab.addClass('tab-pane'); 116 | tab.addClass('tabbed-pane'); 117 | if (fade) 118 | tab.addClass('fade'); 119 | 120 | // move it into the tab content div 121 | tab.detach().appendTo(tabContent); 122 | }); 123 | 124 | // set active tab 125 | $(tabList.children('li')[activeTab]).addClass('active'); 126 | var active = $(tabContent.children('div.section')[activeTab]); 127 | active.addClass('active'); 128 | if (fade) 129 | active.addClass('in'); 130 | 131 | if (tabset.hasClass("tabset-sticky")) 132 | tabset.rmarkdownStickyTabs(); 133 | } 134 | 135 | // convert section divs with the .tabset class to tabsets 136 | var tabsets = $("div.section.tabset"); 137 | tabsets.each(function(i) { 138 | buildTabset($(tabsets[i])); 139 | }); 140 | }; 141 | 142 | -------------------------------------------------------------------------------- /docs/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 84px !important; 3 | } 4 | -------------------------------------------------------------------------------- /index.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | pagetitle: "Reproducible website stack" 3 | bibliography: packrat_bibliography.bibtex 4 | csl: apa-custom-no-issue.csl 5 | nocite: | 6 | @R @packrat @rmarkdown @knitr @formr @pander @lubridate @stringr @broom @ggplot2 @tidyr @dplyr @devtools @formatR 7 | --- 8 | 9 | # Reproducible website stack {.tabset .tabset-sticky} 10 | 11 | ```{r message=FALSE, warning=FALSE} 12 | source("0_helpers.R") 13 | ``` 14 | 15 | We did this cool project. 16 | 17 | We used these [helper functions](0_helpers.html) and 18 | this [knitr component](_regression_summary.html). These are the [.Rprofile settings](.Rprofile.html) 19 | 20 | 1. First we [wrangled the data](1_wrangle_data.html). 21 | 2. Then we looked at some [descriptives](2_descriptives.html). 22 | 3. Then we [analysed](3_analyses.html) it. 23 | 24 | ## Authors & Acknowledgements {.tabset .tabset-sticky} 25 | 26 | ### Authors 27 | You! 28 | 29 | This supplementary website has been archived on Zenodo.org [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.268888.svg)](https://doi.org/10.5281/zenodo.268888). 30 | 31 | ### Acknowledgements {.active} 32 | 33 | 34 | #### Package bibliography {.tabset .tabset-sticky} 35 | 36 | ##### Session info 37 | ```{r} 38 | # Make packrat bibliography 39 | packrat_bibliography(overwrite_bib = TRUE, silent = TRUE) 40 | # Turn the .R files into .Rmd files, turn those into .html, remove the .Rmd files 41 | spin_R_files_to_site_html() 42 | sessionInfo() 43 | ``` 44 | 45 | ##### References {.active} 46 | -------------------------------------------------------------------------------- /packrat_bibliography.bibtex: -------------------------------------------------------------------------------- 1 | @Manual{R, 2 | title = {{R}: A Language and Environment for Statistical Computing}, 3 | author = {{R Core Team}}, 4 | organization = {R Foundation for Statistical Computing}, 5 | address = {Vienna, Austria}, 6 | year = {2017}, 7 | url = {https://www.R-project.org/}, 8 | note = {version 3.4.3}, 9 | } 10 | 11 | @Manual{BH, 12 | title = {{BH}: Boost C++ Header Files}, 13 | author = {Dirk Eddelbuettel and John W. Emerson and Michael J. Kane}, 14 | year = {2017}, 15 | note = {R package version 1.65.0-1}, 16 | url = {https://CRAN.R-project.org/package=BH}, 17 | } 18 | 19 | @Manual{DT, 20 | title = {{DT}: A Wrapper of the JavaScript Library 'DataTables'}, 21 | author = {Yihui Xie}, 22 | year = {2016}, 23 | note = {R package version 0.2}, 24 | url = {https://CRAN.R-project.org/package=DT}, 25 | } 26 | 27 | @Book{MASS, 28 | title = {Modern Applied Statistics with S}, 29 | author = {W. N. Venables and B. D. Ripley}, 30 | publisher = {Springer}, 31 | edition = {Fourth}, 32 | address = {New York}, 33 | year = {2002}, 34 | note = {ISBN 0-387-95457-0}, 35 | url = {http://www.stats.ox.ac.uk/pub/MASS4}, 36 | } 37 | 38 | @Manual{R6, 39 | title = {{R6}: Classes with Reference Semantics}, 40 | author = {Winston Chang}, 41 | year = {2017}, 42 | note = {R package version 2.2.2}, 43 | url = {https://CRAN.R-project.org/package=R6}, 44 | } 45 | 46 | @Manual{RColorBrewer, 47 | title = {{RColorBrewer}: ColorBrewer Palettes}, 48 | author = {Erich Neuwirth}, 49 | year = {2014}, 50 | note = {R package version 1.1-2}, 51 | url = {https://CRAN.R-project.org/package=RColorBrewer}, 52 | } 53 | 54 | @Article{Rcpp, 55 | title = {{Rcpp}: Seamless {{R}} and {C++} Integration}, 56 | author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, 57 | journal = {Journal of Statistical Software}, 58 | year = {2011}, 59 | volume = {40}, 60 | number = {8}, 61 | pages = {1--18}, 62 | url = {http://www.jstatsoft.org/v40/i08/}, 63 | doi = {10.18637/jss.v040.i08}, 64 | } 65 | 66 | @Book{Rcpp, 67 | title = {Seamless {R} and {C++} Integration with {Rcpp}}, 68 | author = {Dirk Eddelbuettel}, 69 | publisher = {Springer}, 70 | address = {New York}, 71 | year = {2013}, 72 | note = {ISBN 978-1-4614-6867-7}, 73 | doi = {10.1007/978-1-4614-6868-4}, 74 | } 75 | 76 | @Article{Rcpp, 77 | title = {{Extending extit{R} with extit{C++}: A Brief Introduction to extit{Rcpp}}}, 78 | author = {Dirk Eddelbuettel and James Joseph Balamuta}, 79 | journal = {PeerJ Preprints}, 80 | year = {2017}, 81 | month = {aug}, 82 | volume = {5}, 83 | pages = {e3188v1}, 84 | issn = {2167-9843}, 85 | url = {https://doi.org/10.7287/peerj.preprints.3188v1}, 86 | doi = {10.7287/peerj.preprints.3188v1}, 87 | } 88 | 89 | @Manual{assertthat, 90 | title = {{assertthat}: Easy Pre and Post Assertions}, 91 | author = {Hadley Wickham}, 92 | year = {2017}, 93 | note = {R package version 0.2.0}, 94 | url = {https://CRAN.R-project.org/package=assertthat}, 95 | } 96 | 97 | @Manual{backports, 98 | title = {{backports}: Reimplementations of Functions Introduced Since {R}-3.0.0}, 99 | author = {Michel Lang}, 100 | year = {2017}, 101 | note = {R package version 1.1.2}, 102 | url = {https://CRAN.R-project.org/package=backports}, 103 | } 104 | 105 | @Manual{base64enc, 106 | title = {{base64enc}: Tools for base64 encoding}, 107 | author = {Simon Urbanek}, 108 | year = {2015}, 109 | note = {R package version 0.1-3}, 110 | url = {https://CRAN.R-project.org/package=base64enc}, 111 | } 112 | 113 | @Manual{bindr, 114 | title = {{bindr}: Parametrized Active Bindings}, 115 | author = {Kirill Müller}, 116 | year = {2016}, 117 | note = {R package version 0.1}, 118 | url = {https://CRAN.R-project.org/package=bindr}, 119 | } 120 | 121 | @Manual{bindrcpp, 122 | title = {{bindrcpp}: An 'Rcpp' Interface to Active Bindings}, 123 | author = {Kirill Müller}, 124 | year = {2017}, 125 | note = {R package version 0.2}, 126 | url = {https://CRAN.R-project.org/package=bindrcpp}, 127 | } 128 | 129 | @Manual{broom, 130 | title = {{broom}: Convert Statistical Analysis Objects into Tidy Data Frames}, 131 | author = {David Robinson}, 132 | year = {2017}, 133 | note = {R package version 0.4.3}, 134 | url = {https://CRAN.R-project.org/package=broom}, 135 | } 136 | 137 | @Manual{cli, 138 | title = {{cli}: Helpers for Developing Command Line Interfaces}, 139 | author = {Gábor Csárdi}, 140 | year = {2017}, 141 | note = {R package version 1.0.0}, 142 | url = {https://CRAN.R-project.org/package=cli}, 143 | } 144 | 145 | @Manual{codetools, 146 | title = {{codetools}: Code Analysis Tools for {R}}, 147 | author = {Luke Tierney}, 148 | year = {2016}, 149 | note = {R package version 0.2-15}, 150 | url = {https://CRAN.R-project.org/package=codetools}, 151 | } 152 | 153 | @Manual{colorspace, 154 | title = {{colorspace}: Color Space Manipulation}, 155 | author = {Ross Ihaka and Paul Murrell and Kurt Hornik and Jason C. Fisher and Achim Zeileis}, 156 | year = {2016}, 157 | note = {R package version 1.3-2}, 158 | url = {https://CRAN.R-project.org/package=colorspace}, 159 | } 160 | 161 | @Article{colorspace, 162 | title = {Escaping {RGB}land: Selecting Colors for Statistical Graphics}, 163 | author = {Achim Zeileis and Kurt Hornik and Paul Murrell}, 164 | journal = {Computational Statistics \& Data Analysis}, 165 | year = {2009}, 166 | volume = {53}, 167 | number = {9}, 168 | pages = {3259--3270}, 169 | doi = {10.1016/j.csda.2008.11.033}, 170 | } 171 | 172 | @Article{colorspace, 173 | title = {Somewhere over the Rainbow: How to Make Effective Use of Colors in Meteorological Visualizations}, 174 | author = {Reto Stauffer and Georg J. Mayr and Markus Dabernig and Achim Zeileis}, 175 | journal = {Bulletin of the American Meteorological Society}, 176 | year = {2009}, 177 | volume = {96}, 178 | number = {2}, 179 | pages = {203--216}, 180 | doi = {10.1175/BAMS-D-13-00155.1}, 181 | } 182 | 183 | @Manual{commonmark, 184 | title = {{commonmark}: High Performance CommonMark and Github Markdown Rendering in {R}}, 185 | author = {Jeroen Ooms}, 186 | year = {2017}, 187 | note = {R package version 1.4}, 188 | url = {https://CRAN.R-project.org/package=commonmark}, 189 | } 190 | 191 | @Manual{crayon, 192 | title = {{crayon}: Colored Terminal Output}, 193 | author = {Gábor Csárdi}, 194 | year = {2017}, 195 | note = {R package version 1.3.4}, 196 | url = {https://CRAN.R-project.org/package=crayon}, 197 | } 198 | 199 | @Manual{curl, 200 | title = {{curl}: A Modern and Flexible Web Client for {R}}, 201 | author = {Jeroen Ooms}, 202 | year = {2017}, 203 | note = {R package version 3.1}, 204 | url = {https://CRAN.R-project.org/package=curl}, 205 | } 206 | 207 | @Manual{devtools, 208 | title = {{devtools}: Tools to Make Developing {R} Packages Easier}, 209 | author = {Hadley Wickham and Winston Chang}, 210 | year = {2017}, 211 | note = {R package version 1.13.4}, 212 | url = {https://CRAN.R-project.org/package=devtools}, 213 | } 214 | 215 | @Manual{dichromat, 216 | title = {{dichromat}: Color Schemes for Dichromats}, 217 | author = {Thomas Lumley}, 218 | year = {2013}, 219 | note = {R package version 2.0-0}, 220 | url = {https://CRAN.R-project.org/package=dichromat}, 221 | } 222 | 223 | @Manual{digest, 224 | title = {{digest}: Create Compact Hash Digests of {R} Objects}, 225 | author = {Dirk Eddelbuettel with contributions by Antoine Lucas and Jarek Tuszynski and Henrik Bengtsson and Simon Urbanek and Mario Frasca and Bryan Lewis and Murray Stokely and Hannes Muehleisen and Duncan Murdoch and Jim Hester and Wush Wu and Qiang Kou and Thierry Onkelinx and Michel Lang and Viliam Simko.}, 226 | year = {2017}, 227 | note = {R package version 0.6.13}, 228 | url = {https://CRAN.R-project.org/package=digest}, 229 | } 230 | 231 | @Manual{dplyr, 232 | title = {{dplyr}: A Grammar of Data Manipulation}, 233 | author = {Hadley Wickham and Romain Francois and Lionel Henry and Kirill Müller}, 234 | year = {2017}, 235 | note = {R package version 0.7.4}, 236 | url = {https://CRAN.R-project.org/package=dplyr}, 237 | } 238 | 239 | @Manual{evaluate, 240 | title = {{evaluate}: Parsing and Evaluation Tools that Provide More Details than the 241 | Default}, 242 | author = {Hadley Wickham}, 243 | year = {2017}, 244 | note = {R package version 0.10.1}, 245 | url = {https://CRAN.R-project.org/package=evaluate}, 246 | } 247 | 248 | @Manual{forcats, 249 | title = {{forcats}: Tools for Working with Categorical Variables (Factors)}, 250 | author = {Hadley Wickham}, 251 | year = {2017}, 252 | note = {R package version 0.2.0}, 253 | url = {https://CRAN.R-project.org/package=forcats}, 254 | } 255 | 256 | @Manual{foreign, 257 | title = {{foreign}: Read Data Stored by 'Minitab', 'S', 'SAS', 'SPSS', 'Stata', 258 | 'Systat', 'Weka', 'dBase', ...}, 259 | author = {{R Core Team}}, 260 | year = {2017}, 261 | note = {R package version 0.8-69}, 262 | url = {https://CRAN.R-project.org/package=foreign}, 263 | } 264 | 265 | @Manual{formatR, 266 | title = {{formatR}: Format {R} Code Automatically}, 267 | author = {Yihui Xie}, 268 | year = {2017}, 269 | note = {R package version 1.5}, 270 | url = {https://CRAN.R-project.org/package=formatR}, 271 | } 272 | 273 | @Manual{formr, 274 | title = {{formr}: formr survey framework}, 275 | author = {Ruben Arslan}, 276 | year = {2014}, 277 | note = {R package version 0.7.1}, 278 | } 279 | 280 | @Book{ggplot2, 281 | author = {Hadley Wickham}, 282 | title = {{ggplot2}: Elegant Graphics for Data Analysis}, 283 | publisher = {Springer-Verlag New York}, 284 | year = {2009}, 285 | isbn = {978-0-387-98140-6}, 286 | url = {http://ggplot2.org}, 287 | note = {version 2.2.1}, 288 | } 289 | 290 | @Manual{git2r, 291 | author = {Stefan Widgren and {others}}, 292 | title = {{git2r}: Provides Access to Git Repositories}, 293 | year = {2018}, 294 | note = {R package version 0.21.0}, 295 | url = {https://CRAN.R-project.org/package=git2r}, 296 | } 297 | 298 | @Manual{glue, 299 | title = {{glue}: Interpreted String Literals}, 300 | author = {Jim Hester}, 301 | year = {2017}, 302 | note = {R package version 1.2.0}, 303 | url = {https://CRAN.R-project.org/package=glue}, 304 | } 305 | 306 | @Manual{gridExtra, 307 | title = {{gridExtra}: Miscellaneous Functions for "Grid" Graphics}, 308 | author = {Baptiste Auguie}, 309 | year = {2017}, 310 | note = {R package version 2.3}, 311 | url = {https://CRAN.R-project.org/package=gridExtra}, 312 | } 313 | 314 | @Manual{gtable, 315 | title = {{gtable}: Arrange 'Grobs' in Tables}, 316 | author = {Hadley Wickham}, 317 | year = {2016}, 318 | note = {R package version 0.2.0}, 319 | url = {https://CRAN.R-project.org/package=gtable}, 320 | } 321 | 322 | @Manual{haven, 323 | title = {{haven}: Import and Export 'SPSS', 'Stata' and 'SAS' Files}, 324 | author = {Hadley Wickham and Evan Miller}, 325 | year = {2017}, 326 | note = {R package version 1.1.0}, 327 | url = {https://CRAN.R-project.org/package=haven}, 328 | } 329 | 330 | @Manual{highr, 331 | title = {{highr}: Syntax Highlighting for {R} Source Code}, 332 | author = {Yixuan Qiu and Yihui Xie}, 333 | year = {2016}, 334 | note = {R package version 0.6}, 335 | url = {https://CRAN.R-project.org/package=highr}, 336 | } 337 | 338 | @Manual{hms, 339 | title = {{hms}: Pretty Time of Day}, 340 | author = {Kirill Müller}, 341 | year = {2017}, 342 | note = {R package version 0.4.0}, 343 | url = {https://CRAN.R-project.org/package=hms}, 344 | } 345 | 346 | @Manual{htmltools, 347 | title = {{htmltools}: Tools for HTML}, 348 | author = {{RStudio} and {Inc.}}, 349 | year = {2017}, 350 | note = {R package version 0.3.6}, 351 | url = {https://CRAN.R-project.org/package=htmltools}, 352 | } 353 | 354 | @Manual{htmlwidgets, 355 | title = {{htmlwidgets}: HTML Widgets for {R}}, 356 | author = {Ramnath Vaidyanathan and Yihui Xie and JJ Allaire and Joe Cheng and Kenton Russell}, 357 | year = {2017}, 358 | note = {R package version 0.9}, 359 | url = {https://CRAN.R-project.org/package=htmlwidgets}, 360 | } 361 | 362 | @Manual{httr, 363 | title = {{httr}: Tools for Working with URLs and HTTP}, 364 | author = {Hadley Wickham}, 365 | year = {2017}, 366 | note = {R package version 1.3.1}, 367 | url = {https://CRAN.R-project.org/package=httr}, 368 | } 369 | 370 | @Article{jsonlite, 371 | title = {The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and {R} Objects}, 372 | author = {Jeroen Ooms}, 373 | journal = {arXiv:1403.2805 [stat.CO]}, 374 | year = {2014}, 375 | url = {https://arxiv.org/abs/1403.2805}, 376 | note = {version 1.5}, 377 | } 378 | 379 | @Manual{knitr, 380 | title = {{knitr}: A General-Purpose Package for Dynamic Report Generation in {R}}, 381 | author = {Yihui Xie}, 382 | year = {2017}, 383 | note = {R package version 1.18}, 384 | url = {https://yihui.name/knitr/}, 385 | } 386 | 387 | @Book{knitr, 388 | title = {Dynamic Documents with {R} and knitr}, 389 | author = {Yihui Xie}, 390 | publisher = {Chapman and Hall/CRC}, 391 | address = {Boca Raton, Florida}, 392 | year = {2015}, 393 | edition = {2nd}, 394 | note = {ISBN 978-1498716963}, 395 | url = {https://yihui.name/knitr/}, 396 | } 397 | 398 | @InCollection{knitr, 399 | booktitle = {Implementing Reproducible Computational Research}, 400 | editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng}, 401 | title = {knitr: A Comprehensive Tool for Reproducible Research in {R}}, 402 | author = {Yihui Xie}, 403 | publisher = {Chapman and Hall/CRC}, 404 | year = {2014}, 405 | note = {ISBN 978-1466561595}, 406 | url = {http://www.crcpress.com/product/isbn/9781466561595}, 407 | } 408 | 409 | @Manual{labeling, 410 | title = {{labeling}: Axis Labeling}, 411 | author = {Justin Talbot}, 412 | year = {2014}, 413 | note = {R package version 0.3}, 414 | url = {https://CRAN.R-project.org/package=labeling}, 415 | } 416 | 417 | @Book{lattice, 418 | title = {{Lattice}: Multivariate Data Visualization with {R}}, 419 | author = {Deepayan Sarkar}, 420 | publisher = {Springer}, 421 | address = {New York}, 422 | year = {2008}, 423 | note = {ISBN 978-0-387-75968-5}, 424 | url = {http://lmdvr.r-forge.r-project.org}, 425 | } 426 | 427 | @Manual{lazyeval, 428 | title = {{lazyeval}: Lazy (Non-Standard) Evaluation}, 429 | author = {Hadley Wickham}, 430 | year = {2017}, 431 | note = {R package version 0.2.1}, 432 | url = {https://CRAN.R-project.org/package=lazyeval}, 433 | } 434 | 435 | @Manual{likert, 436 | title = {{likert}: Analysis and Visualization Likert Items}, 437 | author = {Jason Bryer and Kimberly Speerschneider}, 438 | year = {2016}, 439 | note = {R package version 1.3.5}, 440 | url = {https://CRAN.R-project.org/package=likert}, 441 | } 442 | 443 | @Article{lubridate, 444 | title = {Dates and Times Made Easy with {lubridate}}, 445 | author = {Garrett Grolemund and Hadley Wickham}, 446 | journal = {Journal of Statistical Software}, 447 | year = {2011}, 448 | volume = {40}, 449 | number = {3}, 450 | pages = {1--25}, 451 | url = {http://www.jstatsoft.org/v40/i03/}, 452 | note = {version 1.7.1}, 453 | } 454 | 455 | @Manual{magrittr, 456 | title = {{magrittr}: A Forward-Pipe Operator for {R}}, 457 | author = {Stefan Milton Bache and Hadley Wickham}, 458 | year = {2014}, 459 | note = {R package version 1.5}, 460 | url = {https://CRAN.R-project.org/package=magrittr}, 461 | } 462 | 463 | @Manual{markdown, 464 | title = {{markdown}: 'Markdown' Rendering for {R}}, 465 | author = {JJ Allaire and Jeffrey Horner and Vicent Marti and Natacha Porte}, 466 | year = {2017}, 467 | note = {R package version 0.8}, 468 | url = {https://CRAN.R-project.org/package=markdown}, 469 | } 470 | 471 | @Manual{memoise, 472 | title = {{memoise}: Memoisation of Functions}, 473 | author = {Hadley Wickham and Jim Hester and Kirill Müller and Daniel Cook}, 474 | year = {2017}, 475 | note = {R package version 1.1.0}, 476 | url = {https://CRAN.R-project.org/package=memoise}, 477 | } 478 | 479 | @Manual{mime, 480 | title = {{mime}: Map Filenames to MIME Types}, 481 | author = {Yihui Xie}, 482 | year = {2016}, 483 | note = {R package version 0.5}, 484 | url = {https://CRAN.R-project.org/package=mime}, 485 | } 486 | 487 | @Manual{mnormt, 488 | title = {The {{R}} package \texttt{mnormt}: The multivariate normal and $t$ distributions (version 1.5-5)}, 489 | author = {Adelchi Azzalini and Alan Genz}, 490 | year = {2016}, 491 | url = {http://azzalini.stat.unipd.it/SW/Pkg-mnormt}, 492 | note = {version 1.5-5}, 493 | } 494 | 495 | @Manual{munsell, 496 | title = {{munsell}: Utilities for Using Munsell Colours}, 497 | author = {Charlotte Wickham}, 498 | year = {2016}, 499 | note = {R package version 0.4.3}, 500 | url = {https://CRAN.R-project.org/package=munsell}, 501 | } 502 | 503 | @Manual{nlme, 504 | title = {{nlme}: Linear and Nonlinear Mixed Effects Models}, 505 | author = {Jose Pinheiro and Douglas Bates and Saikat DebRoy and Deepayan Sarkar and {R Core Team}}, 506 | year = {2017}, 507 | note = {R package version 3.1-131}, 508 | url = {https://CRAN.R-project.org/package=nlme}, 509 | } 510 | 511 | @Manual{openssl, 512 | title = {{openssl}: Toolkit for Encryption, Signatures and Certificates Based on 513 | OpenSSL}, 514 | author = {Jeroen Ooms}, 515 | year = {2017}, 516 | note = {R package version 0.9.9}, 517 | url = {https://CRAN.R-project.org/package=openssl}, 518 | } 519 | 520 | @Manual{packrat, 521 | title = {{packrat}: A Dependency Management System for Projects and their {R} Package 522 | Dependencies}, 523 | author = {Kevin Ushey and Jonathan McPherson and Joe Cheng and Aron Atkins and JJ Allaire}, 524 | year = {2016}, 525 | note = {R package version 0.4.8-1}, 526 | url = {https://CRAN.R-project.org/package=packrat}, 527 | } 528 | 529 | @Manual{pander, 530 | title = {{pander}: An {R} 'Pandoc' Writer}, 531 | author = {Gergely Daróczi and Roman Tsegelskyi}, 532 | year = {2017}, 533 | note = {R package version 0.6.1}, 534 | url = {https://CRAN.R-project.org/package=pander}, 535 | } 536 | 537 | @Manual{pillar, 538 | title = {{pillar}: Coloured Formatting for Columns}, 539 | author = {Kirill Müller and Hadley Wickham}, 540 | note = {R package version 1.0.99.9000}, 541 | url = {https://github.com/r-lib/pillar}, 542 | } 543 | 544 | @Manual{pkgconfig, 545 | title = {{pkgconfig}: Private Configuration for '{R}' Packages}, 546 | author = {Gábor Csárdi}, 547 | year = {2017}, 548 | note = {R package version 2.0.1}, 549 | url = {https://CRAN.R-project.org/package=pkgconfig}, 550 | } 551 | 552 | @Manual{plogr, 553 | title = {{plogr}: The 'plog' C++ Logging Library}, 554 | author = {Kirill Müller}, 555 | year = {2016}, 556 | note = {R package version 0.1-1}, 557 | url = {https://CRAN.R-project.org/package=plogr}, 558 | } 559 | 560 | @Article{plyr, 561 | title = {The Split-Apply-Combine Strategy for Data Analysis}, 562 | author = {Hadley Wickham}, 563 | journal = {Journal of Statistical Software}, 564 | year = {2011}, 565 | volume = {40}, 566 | number = {1}, 567 | pages = {1--29}, 568 | url = {http://www.jstatsoft.org/v40/i01/}, 569 | note = {version 1.8.4}, 570 | } 571 | 572 | @Manual{pryr, 573 | title = {{pryr}: Tools for Computing on the Language}, 574 | author = {Hadley Wickham}, 575 | year = {2017}, 576 | note = {R package version 0.1.3}, 577 | url = {https://CRAN.R-project.org/package=pryr}, 578 | } 579 | 580 | @Manual{psych, 581 | title = {{psych}: Procedures for Psychological, Psychometric, and Personality Research}, 582 | author = {William Revelle}, 583 | organization = { Northwestern University}, 584 | address = { Evanston, Illinois}, 585 | year = {2017}, 586 | note = {R package version 1.7.3}, 587 | url = {https://CRAN.R-project.org/package=psych}, 588 | } 589 | 590 | @Manual{purrr, 591 | title = {{purrr}: Functional Programming Tools}, 592 | author = {Lionel Henry and Hadley Wickham}, 593 | year = {2017}, 594 | note = {R package version 0.2.4}, 595 | url = {https://CRAN.R-project.org/package=purrr}, 596 | } 597 | 598 | @Manual{readr, 599 | title = {{readr}: Read Rectangular Text Data}, 600 | author = {Hadley Wickham and Jim Hester and Romain Francois}, 601 | year = {2017}, 602 | note = {R package version 1.1.1}, 603 | url = {https://CRAN.R-project.org/package=readr}, 604 | } 605 | 606 | @Article{reshape2, 607 | title = {Reshaping Data with the {reshape} Package}, 608 | author = {Hadley Wickham}, 609 | journal = {Journal of Statistical Software}, 610 | year = {2007}, 611 | volume = {21}, 612 | number = {12}, 613 | pages = {1--20}, 614 | url = {http://www.jstatsoft.org/v21/i12/}, 615 | note = {version 1.4.3}, 616 | } 617 | 618 | @Manual{rlang, 619 | title = {{rlang}: Functions for Base Types and Core {R} and 'Tidyverse' Features}, 620 | author = {Lionel Henry and Hadley Wickham}, 621 | year = {2017}, 622 | note = {R package version 0.1.6}, 623 | url = {https://CRAN.R-project.org/package=rlang}, 624 | } 625 | 626 | @Manual{rmarkdown, 627 | title = {{rmarkdown}: Dynamic Documents for {R}}, 628 | author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang}, 629 | year = {2017}, 630 | note = {R package version 1.8}, 631 | url = {https://CRAN.R-project.org/package=rmarkdown}, 632 | } 633 | 634 | @Manual{rprojroot, 635 | title = {{rprojroot}: Finding Files in Project Subdirectories}, 636 | author = {Kirill Müller}, 637 | year = {2017}, 638 | note = {R package version 1.2}, 639 | url = {https://CRAN.R-project.org/package=rprojroot}, 640 | } 641 | 642 | @Manual{rstudioapi, 643 | title = {{rstudioapi}: Safely Access the RStudio API}, 644 | author = {JJ Allaire and Hadley Wickham and Kevin Ushey and Gary Ritchie}, 645 | year = {2017}, 646 | note = {R package version 0.7}, 647 | url = {https://CRAN.R-project.org/package=rstudioapi}, 648 | } 649 | 650 | @Manual{scales, 651 | title = {{scales}: Scale Functions for Visualization}, 652 | author = {Hadley Wickham}, 653 | year = {2017}, 654 | note = {R package version 0.5.0}, 655 | url = {https://CRAN.R-project.org/package=scales}, 656 | } 657 | 658 | @Manual{stringi, 659 | title = {{R} package stringi: Character string processing facilities}, 660 | author = {Marek Gagolewski}, 661 | year = {2017}, 662 | url = {http://www.gagolewski.com/software/stringi/}, 663 | note = {version 1.1.6}, 664 | } 665 | 666 | @Manual{stringr, 667 | title = {{stringr}: Simple, Consistent Wrappers for Common String Operations}, 668 | author = {Hadley Wickham}, 669 | year = {2017}, 670 | note = {R package version 1.2.0}, 671 | url = {https://CRAN.R-project.org/package=stringr}, 672 | } 673 | 674 | @Manual{tibble, 675 | title = {{tibble}: Simple Data Frames}, 676 | author = {Kirill Müller and Hadley Wickham}, 677 | year = {2017}, 678 | note = {R package version 1.4.1}, 679 | url = {https://CRAN.R-project.org/package=tibble}, 680 | } 681 | 682 | @Manual{tidyr, 683 | title = {{tidyr}: Easily Tidy Data with 'spread()' and 'gather()' Functions}, 684 | author = {Hadley Wickham and Lionel Henry}, 685 | year = {2017}, 686 | note = {R package version 0.7.2}, 687 | url = {https://CRAN.R-project.org/package=tidyr}, 688 | } 689 | 690 | @Manual{tidyselect, 691 | title = {{tidyselect}: Select from a Set of Strings}, 692 | author = {Lionel Henry and Hadley Wickham}, 693 | year = {2017}, 694 | note = {R package version 0.2.3}, 695 | url = {https://CRAN.R-project.org/package=tidyselect}, 696 | } 697 | 698 | @Manual{utf8, 699 | title = {{utf8}: Unicode Text Processing}, 700 | author = {Patrick O. Perry}, 701 | year = {2018}, 702 | note = {R package version 1.1.3}, 703 | url = {https://CRAN.R-project.org/package=utf8}, 704 | } 705 | 706 | @Manual{viridisLite, 707 | title = {{viridisLite}: Default Color Maps from 'matplotlib' (Lite Version)}, 708 | author = {Simon Garnier}, 709 | year = {2017}, 710 | note = {R package version 0.2.0}, 711 | url = {https://CRAN.R-project.org/package=viridisLite}, 712 | } 713 | 714 | @Manual{whisker, 715 | title = {{whisker}: {{mustache}} for {R}, logicless templating}, 716 | author = {Edwin {de Jonge}}, 717 | year = {2013}, 718 | note = {R package version 0.3-2}, 719 | url = {https://CRAN.R-project.org/package=whisker}, 720 | } 721 | 722 | @Manual{withr, 723 | title = {{withr}: Run Code 'With' Temporarily Modified Global State}, 724 | author = {Jim Hester and Kirill Müller and Kevin Ushey and Hadley Wickham and Winston Chang}, 725 | year = {2017}, 726 | note = {R package version 2.1.1}, 727 | url = {https://CRAN.R-project.org/package=withr}, 728 | } 729 | 730 | @Manual{xtable, 731 | title = {{xtable}: Export Tables to LaTeX or HTML}, 732 | author = {David B. Dahl}, 733 | year = {2016}, 734 | note = {R package version 1.8-2}, 735 | url = {https://CRAN.R-project.org/package=xtable}, 736 | } 737 | 738 | @Manual{yaml, 739 | title = {{yaml}: Methods to Convert {R} Data to YAML and Back}, 740 | author = {Jeremy Stephens}, 741 | year = {2017}, 742 | note = {R package version 2.1.16}, 743 | url = {https://CRAN.R-project.org/package=yaml}, 744 | } 745 | -------------------------------------------------------------------------------- /repro_web_stack.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: No 4 | SaveWorkspace: No 5 | AlwaysSaveHistory: Yes 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: No 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: knitr 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | 18 | BuildType: Website 19 | 20 | QuitChildProcessesOnExit: Yes 21 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 84px !important; 3 | } 4 | --------------------------------------------------------------------------------