├── .gitignore ├── header.html ├── favicon.ico ├── images ├── GitHub_pages_1.png ├── GitHub_pages_2.png ├── RStudio-screenshot.png └── tools-logo-transparent.png ├── site_libs ├── bootstrap-3.3.5 │ ├── css │ │ └── fonts │ │ │ ├── Lato.ttf │ │ │ ├── Raleway.ttf │ │ │ ├── Roboto.ttf │ │ │ ├── Ubuntu.ttf │ │ │ ├── LatoBold.ttf │ │ │ ├── LatoItalic.ttf │ │ │ ├── NewsCycle.ttf │ │ │ ├── OpenSans.ttf │ │ │ ├── RobotoBold.ttf │ │ │ ├── OpenSansBold.ttf │ │ │ ├── RalewayBold.ttf │ │ │ ├── RobotoLight.ttf │ │ │ ├── RobotoMedium.ttf │ │ │ ├── NewsCycleBold.ttf │ │ │ ├── OpenSansItalic.ttf │ │ │ ├── OpenSansLight.ttf │ │ │ ├── SourceSansPro.ttf │ │ │ ├── SourceSansProBold.ttf │ │ │ ├── OpenSansBoldItalic.ttf │ │ │ ├── OpenSansLightItalic.ttf │ │ │ ├── SourceSansProItalic.ttf │ │ │ └── SourceSansProLight.ttf │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── js │ │ └── npm.js │ └── shim │ │ ├── html5shiv.min.js │ │ └── respond.min.js ├── font-awesome-5.0.13 │ ├── fonts │ │ ├── fa-solid-900.ttf │ │ ├── fa-brands-400.ttf │ │ └── fa-regular-400.ttf │ ├── css │ │ └── fa-svg-with-js.css │ └── js │ │ └── fa-v4-shims.min.js ├── font-awesome-5.1.0 │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.ttf │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-solid-900.woff2 │ │ └── fa-regular-400.woff2 ├── font-awesome-4.5.0 │ └── fonts │ │ └── fontawesome-webfont.ttf ├── jqueryui-1.11.4 │ ├── images │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777620_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cc0000_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ ├── README │ ├── jquery-ui.structure.min.css │ └── jquery-ui.theme.min.css ├── highlightjs-9.12.0 │ ├── default.css │ └── textmate.css ├── navigation-1.1 │ ├── sourceembed.js │ ├── codefolding.js │ └── tabsets.js └── tocify-1.9.1 │ └── jquery.tocify.css ├── README.md ├── index.Rmd ├── links.Rmd ├── styles.css ├── footer.html ├── _site.yml ├── bookdown.Rmd ├── rstudio.Rmd ├── jekyll.Rmd ├── Git-RStudio.Rmd ├── set-up.Rmd ├── RMarkdown.Rmd ├── shiny.Rmd ├── packages.Rmd ├── websites.Rmd ├── README.html ├── index.html ├── links.html ├── bookdown.html ├── rstudio.html └── Git-RStudio.html /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | *.Rproj 6 | -------------------------------------------------------------------------------- /header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/favicon.ico -------------------------------------------------------------------------------- /images/GitHub_pages_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/images/GitHub_pages_1.png -------------------------------------------------------------------------------- /images/GitHub_pages_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/images/GitHub_pages_2.png -------------------------------------------------------------------------------- /images/RStudio-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/images/RStudio-screenshot.png -------------------------------------------------------------------------------- /images/tools-logo-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/images/tools-logo-transparent.png -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/Lato.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/Lato.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/Raleway.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/Raleway.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/Roboto.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/Ubuntu.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/Ubuntu.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/LatoBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/LatoBold.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/LatoItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/LatoItalic.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/NewsCycle.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/NewsCycle.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/OpenSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/OpenSans.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/RobotoBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/RobotoBold.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/OpenSansBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBold.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/RalewayBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/RalewayBold.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/RobotoLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/RobotoLight.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/RobotoMedium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/RobotoMedium.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.0.13/fonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.0.13/fonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/NewsCycleBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/NewsCycleBold.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/OpenSansItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/OpenSansItalic.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/OpenSansLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLight.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/SourceSansPro.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/SourceSansPro.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.0.13/fonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.0.13/fonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.0.13/fonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.0.13/fonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/SourceSansProBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProBold.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Website for the RWorkflow INCOIS Short Course 2 | 3 | * Simple website built with R Markdown 'Build Website' function. 4 | * Click the 'Build Website' button in RStudio to make. -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/OpenSansBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBoldItalic.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/OpenSansLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLightItalic.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/SourceSansProItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProItalic.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/css/fonts/SourceSansProLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProLight.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/font-awesome-5.1.0/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/jqueryui-1.11.4/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/jqueryui-1.11.4/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/jqueryui-1.11.4/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/jqueryui-1.11.4/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/jqueryui-1.11.4/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/jqueryui-1.11.4/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RVerse-Tutorials/RWorkflow-Workshop/master/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /site_libs/highlightjs-9.12.0/default.css: -------------------------------------------------------------------------------- 1 | .hljs-literal { 2 | color: #990073; 3 | } 4 | 5 | .hljs-number { 6 | color: #099; 7 | } 8 | 9 | .hljs-comment { 10 | color: #998; 11 | font-style: italic; 12 | } 13 | 14 | .hljs-keyword { 15 | color: #900; 16 | font-weight: bold; 17 | } 18 | 19 | .hljs-string { 20 | color: #d14; 21 | } 22 | -------------------------------------------------------------------------------- /site_libs/highlightjs-9.12.0/textmate.css: -------------------------------------------------------------------------------- 1 | .hljs-literal { 2 | color: rgb(88, 72, 246); 3 | } 4 | 5 | .hljs-number { 6 | color: rgb(0, 0, 205); 7 | } 8 | 9 | .hljs-comment { 10 | color: rgb(76, 136, 107); 11 | } 12 | 13 | .hljs-keyword { 14 | color: rgb(0, 0, 255); 15 | } 16 | 17 | .hljs-string { 18 | color: rgb(3, 106, 7); 19 | } 20 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/README: -------------------------------------------------------------------------------- 1 | This a jQuery UI custom build, downloaded from: 2 | http://jqueryui.com/download/#!version=1.11.4&components=1111111111110111111111111111111111111 3 | 4 | It includes all components except the datepicker, because it conflicts with 5 | bootstrap-datepicker that is packaged with Shiny. 6 | 7 | The copy of jQuery that is bundled with the download, under external/, is not 8 | included because Shiny already has its own copy of jQuery. 9 | -------------------------------------------------------------------------------- /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') -------------------------------------------------------------------------------- /index.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "R Workflow Short-Course" 3 | --- 4 | 5 | 6 | [Course Announcement](http://www.incois.gov.in/ITCOocean/ftsf.jsp) 7 | 8 | 9 | 10 | This short-course will cover Report-writing and Code documentation with R: 11 | 12 | - Basic workflow using RStudio, Git and GitHub 13 | - Intro to R Markdown 14 | - Creating simple websites from RStudio 15 | - Build an R package with RStudio 16 | - Creating simple websites from R packages on GitHub 17 | - Creating a book with R Markdown: Intro to Bookdown. 18 | - Creating and publishing RShiny applications 19 | 20 |
21 | 22 | 23 |
24 | ------------------------------------ 25 |
26 | -------------------------------------------------------------------------------- /links.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Links" 3 | --- 4 | 5 | # R Markdown 6 | 7 | * [RStudio's lessons](https://rmarkdown.rstudio.com/lesson-1.html) 8 | 9 | # Other Reproducible Research Short-Courses 10 | 11 | * [Reproductible Research 2017](https://eriqande.github.io/rep-res-eeb-2017/index.html) Source for some of the introductory material. 12 | 13 | # Making simple websites 14 | 15 | * [Another tutorial] (https://jules32.github.io/rmarkdown-website-tutorial/index.html) with more examples and slightly more complicated websites. 16 | 17 | # Jekyll 18 | 19 | * [Installing Jekyll on Mac OS](https://learn.cloudcannon.com/jekyll/install-jekyll-on-os-x/) 20 | * [Jekyll build](https://learn.cloudcannon.com/jekyll/running-jekyll/) 21 | 22 | # Jekyll Templates 23 | 24 | * [Hugo Academic](https://sourcethemes.com/academic/) Popular Jekyll template in academia. 25 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | /* Need to adjust the navbar behaviour so the navbar doesn't wrap */ 2 | .navbar-nav { 3 | position: fixed; 4 | left: 150px; 5 | width: 1000px; 6 | } 7 | 8 | .navbar-right { 9 | position: fixed; 10 | left: 80%; 11 | width: 300px; 12 | } 13 | 14 | .navbar-header { 15 | position: fixed; 16 | left: 30px; 17 | width: 97%; 18 | } 19 | 20 | .nav { 21 | font-size: 15px; 22 | } 23 | 24 | body { 25 | font-family: "Raleway","Helvetica Neue",Helvetica,Arial,sans-serif; 26 | line-height: 2; 27 | } 28 | 29 | div.scroll { 30 | background-color: #FFFFFF; 31 | height:225px; 32 | width: 100%; 33 | overflow-x: scroll; 34 | } 35 | 36 | blockquote { 37 | border-left:none; 38 | font-size: 1em; 39 | display: block; 40 | margin-top: .25em; 41 | margin-left: 20px; 42 | } 43 | 44 | h1 { 45 | padding-bottom: 0.5em; 46 | } 47 | 48 | .section { 49 | padding-bottom: 2em; 50 | } 51 | -------------------------------------------------------------------------------- /footer.html: -------------------------------------------------------------------------------- 1 |
2 | 20 | 21 | -------------------------------------------------------------------------------- /_site.yml: -------------------------------------------------------------------------------- 1 | name: rworkflow-workshop 2 | output_dir: '.' 3 | navbar: 4 | title: RWorkflow 5 | left: 6 | - text: Set-up 7 | icon: fa-clone 8 | href: set-up.html 9 | - text: RStudio 10 | icon: fa-cogs 11 | href: rstudio.html 12 | - text: R Markdown 13 | icon: fa-file 14 | href: RMarkdown.html 15 | - text: Websites 16 | icon: fa-chrome 17 | href: websites.html 18 | - text: More Tools 19 | menu: 20 | - text: R Packages 21 | icon: fa-archive 22 | href: packages.html 23 | - text: Jekyll 24 | icon: fa-sitemap 25 | href: jekyll.html 26 | - text: Bookdown 27 | icon: fa-book 28 | href: bookdown.html 29 | - text: Shiny 30 | icon: fa-gamepad 31 | href: shiny.html 32 | - text: Links 33 | href: links.html 34 | right: 35 | - icon: fa-home 36 | href: https://rverse-tutorials.github.io/Fish-Forecast-Training-Course/ 37 | - icon: fa-wrench 38 | href: https://rverse-tutorials.github.io/RWorkflow-Workshop 39 | - icon: fa-line-chart 40 | href: https://fish-forecast.github.io/Catch-Forecasting-INCOIS/ 41 | - icon: fa-github 42 | href: https://github.com/RVerse-Tutorials/RWorkflow-Workshop 43 | 44 | output: 45 | html_document: 46 | theme: readable 47 | toc_depth: 2 48 | toc_float: 49 | collapsed: no 50 | highlight: textmate 51 | css: styles.css 52 | lib_dir: site_libs 53 | self_contained: no 54 | include: 55 | in_header: header.html 56 | 57 | -------------------------------------------------------------------------------- /site_libs/navigation-1.1/codefolding.js: -------------------------------------------------------------------------------- 1 | 2 | window.initializeCodeFolding = function(show) { 3 | 4 | // handlers for show-all and hide all 5 | $("#rmd-show-all-code").click(function() { 6 | $('div.r-code-collapse').each(function() { 7 | $(this).collapse('show'); 8 | }); 9 | }); 10 | $("#rmd-hide-all-code").click(function() { 11 | $('div.r-code-collapse').each(function() { 12 | $(this).collapse('hide'); 13 | }); 14 | }); 15 | 16 | // index for unique code element ids 17 | var currentIndex = 1; 18 | 19 | // select all R code blocks 20 | var rCodeBlocks = $('pre.r, pre.python, pre.bash, pre.sql, pre.cpp, pre.stan, pre.julia'); 21 | rCodeBlocks.each(function() { 22 | 23 | // create a collapsable div to wrap the code in 24 | var div = $('
'); 25 | if (show || $(this)[0].classList.contains('fold-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 | -------------------------------------------------------------------------------- /site_libs/tocify-1.9.1/jquery.tocify.css: -------------------------------------------------------------------------------- 1 | /* 2 | * jquery.tocify.css 1.9.1 3 | * Author: @gregfranko 4 | */ 5 | 6 | /* The Table of Contents container element */ 7 | .tocify { 8 | width: 20%; 9 | max-height: 90%; 10 | overflow: auto; 11 | margin-left: 2%; 12 | position: fixed; 13 | border: 1px solid #ccc; 14 | border-radius: 6px; 15 | } 16 | 17 | /* The Table of Contents is composed of multiple nested unordered lists. These styles remove the default styling of an unordered list because it is ugly. */ 18 | .tocify ul, .tocify li { 19 | list-style: none; 20 | margin: 0; 21 | padding: 0; 22 | border: none; 23 | line-height: 30px; 24 | } 25 | 26 | /* Top level header elements */ 27 | .tocify-header { 28 | text-indent: 10px; 29 | } 30 | 31 | /* Top level subheader elements. These are the first nested items underneath a header element. */ 32 | .tocify-subheader { 33 | text-indent: 20px; 34 | display: none; 35 | } 36 | 37 | /* Makes the font smaller for all subheader elements. */ 38 | .tocify-subheader li { 39 | font-size: 12px; 40 | } 41 | 42 | /* Further indents second level subheader elements. */ 43 | .tocify-subheader .tocify-subheader { 44 | text-indent: 30px; 45 | } 46 | .tocify-subheader .tocify-subheader .tocify-subheader { 47 | text-indent: 40px; 48 | } 49 | .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader { 50 | text-indent: 50px; 51 | } 52 | .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader { 53 | text-indent: 60px; 54 | } 55 | 56 | /* Twitter Bootstrap Override Style */ 57 | .tocify .tocify-item > a, .tocify .nav-list .nav-header { 58 | margin: 0px; 59 | } 60 | 61 | /* Twitter Bootstrap Override Styles */ 62 | .tocify .tocify-item a, .tocify .list-group-item { 63 | padding: 5px; 64 | } 65 | 66 | .tocify .nav-pills > li { 67 | float: none; 68 | } 69 | 70 | /* We don't override the bootstrap colors because this gives us the 71 | wrong selection colors when using bootstrap themes 72 | 73 | .tocify .list-group-item:hover, .tocify .list-group-item:focus { 74 | background-color: #f5f5f5; 75 | } 76 | 77 | .tocify .list-group-item.active:hover, .tocify .list-group-item.active:focus { 78 | background-color: #428bca; 79 | } 80 | */ 81 | 82 | /* End Twitter Bootstrap Override Styles */ 83 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bookdown.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Bookdown" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | The bookdown package makes it easy to create books with R Markdown and RStudio. These can be easily published online and in various formats: HTML, PDF, ePub, and Kindle. Read about bookdown and see hundreds of online books written with it at [bookdown.org](https://bookdown.org/). 15 | 16 | Once you are ready to write your own book, read the [online documentation](https://bookdown.org/yihui/bookdown/). 17 | 18 | Examples: 19 | 20 | * The [bookdown.org](https://bookdown.org/) website has hundreds of examples. 21 | * We have a time-series book using it: [Applied Time-Series Analysis](https://nwfsc-timeseries.github.io/atsa-labs/) 22 | 23 | ## Download the template 24 | 25 | Download a zip file of the [bookdown-demo](https://github.com/RVerse-Tutorials/bookdown-demo) repository. You can use the 'download zip file' button on the GitHub repository or you can navigate to your 'RWorkflow' folder in RStudio and click 'More' in the Files panel and select 'Set as working directory'. Then issue these commands. 26 | 27 | ``` 28 | library(RWorkflowsetup) 29 | download.repo("bookdown-demo") 30 | ``` 31 | 32 | *INCOIS participants: You will find a copy of the repository in the RWorkflow directory that you copied from the thumb drive.* 33 | 34 | This is a copy of the [original bookdown-demo](https://github.com/rstudio/bookdown-demo) by Yihui Xie, the creator of the bookdown package, with a few changes so it works immediately with GitHub. 35 | 36 | ## Build the book 37 | 38 | 1. Open RStudio 39 | 2. Click the project button in top right and select 'New Project'. 40 | 3. Click 'Existing Directory' and choose your 'bookdown-demo' folder. 41 | 4. Click the Build tab and click 'Build book' 42 | 43 | Your book should appear. 44 | 45 | ## Post and online version of your book via GitHub 46 | 47 | You can host your book many places. To do so on GitHub, do the following. 48 | 49 | 1. Make your bookdown-demo folder into a repository. 50 | - Open GitHub Desktop, click 'File > New Repository' 51 | - Type `bookdown-demo` as the name and `\RWorkflow` as the local path. This assumes that the bookdown-demo folder is in the RWorkflow directory. If not, replace the path with the directory where you put the bookdown-demo folder. 52 | 2. Publish the bookdown-demo folder to GitHub. Click the Publish button in GitHub Desktop. 53 | 3. Open the repository on GitHub. 54 | - Click Settings, and scroll down to `GitHub Pages`. Change the source to `master branch/docs` folder and click save. 55 | 4. Your book should appear at `https://.github.io/bookdown-demo/` in a few minutes. 56 | 57 | -------------------------------------------------------------------------------- /rstudio.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "RStudio Basics" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | ## Never worked with R? 15 | 16 | If you have never worked with R, you can get a basic familiarity by going through [this free tutorial](https://www.datacamp.com/courses/free-introduction-to-r). Takes about 4 hours. 17 | 18 | You can also learn R straight from within R using the [swirl package](https://swirlstats.com/). This doesn't require internet access except to install the package. 19 | 20 | Here is another basic R introduction from [ComputerWorld](https://www.computerworld.com/article/2497143/business-intelligence/business-intelligence-beginner-s-guide-to-r-introduction.html). 21 | 22 | ## RStudio Overview 23 | 24 | When you open RStudio you will see 4 panels: 25 | 26 | ![RStudio-panels](images/RStudio-screenshot.png) 27 | 28 | ## Create an RStudio Project 29 | 30 | 1. In RStudio, choose "File->New Project..." 31 | 1. Then choose "New Directory" and then choose "Empty Project" 32 | 1. In the next dialog, choose a name (_it is best to use only letters, numbers, dashes, and underscores, and include no spaces in the name_). 33 | 1. Then click "Create Project". 34 | 35 | That should give you a new project. 36 | 37 | ## Add a new script file 38 | 39 | 1. Add a new file using 'File > New File > R Script' 40 | 2. Or you can click the new icon in top left corner. 41 | 2. Add some code to that file. Copy and paste in: 42 | 43 | ``` 44 | require(graphics) 45 | ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". 46 | ## Page 9: Plant Weight Data. 47 | ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) 48 | trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) 49 | group <- gl(2, 10, 20, labels = c("Ctl","Trt")) 50 | weight <- c(ctl, trt) 51 | lm.D9 <- lm(weight ~ group) 52 | opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0)) 53 | plot(lm.D9, las = 1) # Residuals, Fitted, ... 54 | par(opar) 55 | ``` 56 | 57 | ## Run the code 58 | 59 | 1. Select all the lines of code and select 'Run' 60 | 2. Run all the code by selecting 'Source' 61 | 62 | ## Workflow basics 63 | 64 | Read through the following sections of the R for Data Science book and work through the examples. 65 | 66 | * [Workflow basics](http://r4ds.had.co.nz/workflow-basics.html): super basic review on how R works. 67 | * [Workflow: projects](http://r4ds.had.co.nz/workflow-projects.html): info about organizing RStudio projects. 68 | * [Workflow: scripts](http://r4ds.had.co.nz/workflow-scripts.html): how to evaluate code in scripts. 69 | 70 | R for Data Science is a great book to introduce you to working with data in R, but we are not going to be doing that in this workshop. 71 | 72 | -------------------------------------------------------------------------------- /jekyll.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Jekyll Websites" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | Jekyll is another simple and popular way to make websites. There are many templates on GitHub that you can copy (fork) to make your own website. 15 | 16 | 17 | # jekyll-simple-blog 18 | 19 | This code is from [M Koehnke](http://mkoehnke.github.io). Per M Koehnke: This is an anonymized version of [Chris Eidhof's](http://github.com/chriseidhof) brilliant [blog theme](http://github.com/chriseidhof/chris.eidhof.nl) converted from Cactus to Jekyll. 20 | 21 | A live demo can be found [here](http://rverse-tutorials.github.io/jekyll-simple-blog/). 22 | 23 | Go to the [RVerse-Tutorials\jekyll-simple-blog](https://github.com/RVerse-Tutorials/jekyll-simple-blog) repository and click the Fork button in the upper right. You will need to be logged into your GitHub account. Then open RStudio and create a new project from that repository. This creates a copy of jekyll-simple-blog that is linked to the copy of the repository that you makde in your GitHub account. 24 | 25 | [Watch a video of this step](https://youtu.be/xeeKrGuaFRg) 26 | 27 | *INCOIS participants: You will find a copy of the repository in the RWorkflow directory that you copied from the thumb drive. However, without internet you won't be able to build your jekyll website.* 28 | 29 | ## Making the blog live 30 | 31 | * Go to settings of your jekyll-simple-blog GitHub repository and set Github Pages source as master. 32 | * Your new site should be ready at https://yourusername.github.io/jekyll-simple-blog/ . Note it can take awhile (5-10 min) for the website to appear and for changes to appear. 33 | * If you change the name of your repository (meaning change it from jekyll-simple-blog to something else), **change the baseurl in `_config.yml`** 34 | 35 | ## Making changes 36 | 37 | * Edit posts in `_posts` 38 | * Add posts in `_posts` 39 | * Upload the changes to GitHub via GitHub Desktop or Git in RStudio. 40 | 41 | # simple-cv 42 | 43 | This is a super simple online resume forked from [http://webjeda.com/online-cv/](http://webjeda.com/online-cv/). [Eli Holmes](https://eeholmes.github.io/) simplified Webjeda's design to make it more suitable for a simple flat resume and make it printable. 44 | 45 | ## Installation 46 | * Fork the repository https://github.com/RVerse-Tutorials/simple-cv 47 | * Go to settings of your repository and set Github Pages source as master. 48 | * Your new site should be ready at https://username.github.io/simple-cv/ 49 | * If you change the name of your repository, change the baseurl in `_config.yml` 50 | 51 | ## Enter your data 52 | * Edit `_config.yml` with your name, education and summary. The summary will appear in About Me. 53 | * Edit `_data\experiences.yml` with your work experience. 54 | * Edit `_data\coursework.yml` with your coursework. 55 | * Edit `_data\skills.yml` with your skills. 56 | * Add your picture to `assets\images\` and put the file name in `_config.yml` in `pic:` 57 | 58 | -------------------------------------------------------------------------------- /Git-RStudio.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Notes on Git and RStudio" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | ## Using Git in RStudio 15 | 16 | You can read a whole book about Git and R [Happy Git with R](http://happygitwithr.com/index.html). 17 | 18 | We will not be using Git in RStudio because it can be hard to set-up and hard to debug if you 19 | run into problems. If you want to use it, [read these instructions](https://cfss.uchicago.edu/git07.html). 20 | 21 | In particular, read the part about how to set-up so you don't have to enter your username and password for every commmit. 22 | 23 | ## Alternate methods for downloading repositories 24 | 25 | ### Alternate Method #1 Download from within R 26 | 27 | The 'RWorkflowsetup' package has a download function. This function will create a folder with the name of the repository. Here is code to download the repository 'Rmarkdown-Tutorial'. For others, just change the name of the repository. 28 | 29 | ``` 30 | library(RWorkflowsetup) 31 | repo = "Test" 32 | download.repo(repo) 33 | ``` 34 | 35 | ### Alternate Method #2 36 | 37 | 1. From RStudio, go to the menu option 38 | 'File->New Project...'. Then from the resulting dialog, choose 39 | "Version Control". Then choose "Git". Then it asks for a "repository URL". 40 | Supply this: `https://github.com/RVerse-Tutorials/Test` and 41 | leave the "Project Directory Name" empty. And then choose a directory 42 | in which to put it and click OK. 43 | 44 | 2. Click on the 'More' link in the Git Window of RStudio, and click 'Shell'. Then issue this command. 45 | ``` 46 | git remote rm origin 47 | ``` 48 | This detaches the cloned repository from the remote repository on GitHub from where you cloned it. That will pull the RStudio project off of GitHub, make a local clone 49 | of it on your hard drive and open. 50 | 51 | ### Alternate Method #3 52 | 53 | Go to https://github.com/RVerse-Tutorials/Test and click 'Clone or download' and chose 'Download Zip'. Unzip and you'll probably want to remove 'master' added to the end of the repository name. 54 | 55 | If you chose, 'Clone in Desktop', you'll need to open a terminal window, navigate to the new folder you just downloaded, and run the git code `git remote rm origin` from within the terminal to detach the repository from the RVerse-Tutorials GitHub account. 56 | 57 | 58 | ## Packages with C++ code 59 | 60 | We will not be doing this in this short course, but often you will want to install packages with C++ code. To do that, you will need Rtools (Windows) or Xcode (Mac) 61 | 62 | * **Rtools** Windows users [Rtools](https://cran.r-project.org/bin/windows/Rtools/) also so you can build packages with C++ code if needed. See comments here about changing path. [Rtools](http://stat545.com/packages01_system-prep.html#windows-system-prep) 63 | 64 | * **Xcode** Mac users Open terminal and type the following command `xcode-select --install` [Read these instructions too](https://thecoatlessprofessor.com/programming/cpp/r-compiler-tools-for-rcpp-on-macos/). 65 | 66 | 67 | -------------------------------------------------------------------------------- /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 Preferences' menu. 25 | 3. Under 'Accounts', sign into your GitHub account. 26 | 3. Under 'Git', enter your name (or initials) and the email you used for your GitHub account. 27 | 28 | Linux users can install Git and interact with GitHub though RStudio. GitHub Desktop is not essential for the course, however it is a standard R Workflow that I will be demonstrating. 29 | 30 | ## Install R and RStudio 31 | 32 | * **R:** Make sure you have the latest version of R. 33 | Go to [https://cran.r-project.org/](https://cran.r-project.org/) and find the download link for your computer system. 34 | 35 | * **RStudio:** Install the latest version of RStudio. Get it from [https://www.rstudio.com/products/rstudio/download](https://www.rstudio.com/products/rstudio/download) and install the appropriate one for your OS. 36 | 37 | ## Set up RStudio to use Git 38 | 39 | 1. Open RStudio 40 | 2. Go to Global Options (from the Tools menu) 41 | 3. Click Git/SVN 42 | 4. Click Enable version control interface for RStudio projects 43 | 44 | Linux users will need to install Git for this to work. Windows/Mac users: Git comes with GitHub Desktop. 45 | 46 | ## Install R packages 47 | 48 | From the command line in R Studio 49 | 50 | 1. **bookdown:** package. Enter the following code at the command line (`>`). 51 | 52 | ```{r get-bd, eval=FALSE} 53 | install.packages("devtools") 54 | ``` 55 | 56 | 2. Install the **packages** that we are going to be need. I have created a package on GitHub that will install the packages you need. 57 | 58 | ```{r get-packages, eval=FALSE} 59 | devtools::install_github("RVerse-Tutorials/RWorkflowsetup") 60 | ``` 61 | 62 | ## Create a workshop folder 63 | 64 | Create a folder/directory on your computer for the workshop materials. You can create it anywhere you want. But name it `RWorkflow` just so we all use the same folder name for the workshop. 65 | 66 | ## Downloading repositories 67 | 68 | **In case we do not have internet access, I will provide the files on a thumb drive also.** 69 | 70 | You will need to download repositories from [RVerse-Tutorials](https://github.com/RVerse-Tutorials) for many of the labs. Here is one way to do that. [Watch a video that shows you how to do this](https://youtu.be/b6AaTHFIY7U) 71 | 72 | 1. Go to the repository you want to copy in your browser. 73 | 2. Click 'Fork' in the upper right corner of the repository. 74 | 3. Open RStudio. Click File > New Project > Version Control 75 | 4. Paste in the url of the repository you are copying---the **forked** repository in your GitHub account. For example, `https://github.com//Test-Website` You can leave project name blank. Replace `` with your GitHub account. 76 | 77 | Another way is to download the repository as a zip file and unzip. [Watch a video that shows you how to do this](https://youtu.be/bYySjso7vRo) 78 | 79 | Another way is to use the function I wrote: 80 | 81 | ``` 82 | library(RWorkflowsetup) 83 | download.repo("Rmarkdown-Tutorial") 84 | ``` 85 | 86 | [Watch a video that shows you how to do this](https://youtu.be/b6AaTHFIY7U) 87 | 88 | For other ways to download a repository, see this [page](Git-RStudio.html). 89 | 90 | ## (Optional) Packages with C++ code 91 | 92 | We will not be doing this in this short course, but often you will want to install packages with C++ code. To do that, you will need Rtools (Windows) or Xcode (Mac) 93 | 94 | * **Rtools** Windows users [Rtools](https://cran.r-project.org/bin/windows/Rtools/) also so you can build packages with C++ code if needed. See comments here about changing path. [Rtools](http://stat545.com/packages01_system-prep.html#windows-system-prep) 95 | 96 | * **Xcode** Mac users Open terminal and type the following command `xcode-select --install` 97 | 98 | 99 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /RMarkdown.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "R Markdown Documents" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | ## Overview 15 | 16 | R Markdown is a format that allows you to combine text and R code. From RStudio you can output your file in many formats: html, PDF, Word, presentations. We are exploring a small slice of R Markdown. When you are ready to explore more, go to [the R Markdown Definitive Guide](https://bookdown.org/yihui/rmarkdown/). 17 | 18 | Note, to make PDF files you will need a LaTeX installation. If you don't have one already (if you are not sure, then you don't), you can install [tinytex](https://yihui.name/tinytex/). Run these lines: 19 | 20 | ``` 21 | install.packages('tinytex') 22 | tinytex::install_tinytex() 23 | ``` 24 | 25 | ## Get the templates 26 | 27 | [Fork](https://youtu.be/b6AaTHFIY7U) the repository [Rmarkdown-Tutorial](https://github.com/RVerse-Tutorials/Rmarkdown-Tutorial) or download a zip file of the repository. To do the latter, you can use the 'download zip file' button on the GitHub repository or you can navigate to your 'RWorkflow' folder in RStudio and click 'More' in the Files panel and select 'Set as working directory'. Then issue these commands. 28 | 29 | ``` 30 | library(RWorkflowsetup) 31 | download.repo("Rmarkdown-Tutorial") 32 | ``` 33 | 34 | *INCOIS participants: You will find a copy of the repository in the RWorkflow directory that you copied from the thumb drive.* 35 | 36 | ## Add your Project to GitHub (optional) 37 | 38 | 1. Open GitHub Desktop. 39 | 2. Click File > Add Local Repository 40 | 3. Navigate to the folder `Rmarkdown-Tutorial` and click Add Repository. If your forked the repository, you are done. 41 | 4. If you downloaded, you should see 'Publish Repository' in GitHub Desktop. Uncheck the 'keep code private box' and then click 'Publish'. Note, it can take a moment to work. 42 | 43 | 44 | ## Basic Rmd file 45 | 46 | Open up `Basic.Rmd`. 47 | 48 | At the top you see 49 | 50 | ``` 51 | --- 52 | title: "Basic" 53 | author: "EE Holmes" 54 | date: "9/2/2018" 55 | output: html_document 56 | --- 57 | ``` 58 | 59 | This is the `yaml` which gives the instructions about how to process your R Markdown file. The `yaml` file is sensitive to spaces. Do not add or subtract spaces. This `yaml` is very simple, but the `yaml` can be complex for some applications. We will only be working with simple examples. 60 | 61 | After the `yaml` is the content. To see a summary of R Markdown formating, click 'Help' menu and then 'Markdown Quick Reference'. 62 | 63 | ## Create output 64 | 65 | We can create documents in different formats from this Rmd file. Click the drop-down menu next to the 'knit' button. 66 | 67 | * **HTML** Select 'knit to HTML' to create a web document. 68 | * **Word** Select 'knit to Word' to create a Word document. 69 | * **PDF** Select 'knit to PDF' to create a PDF. 70 | 71 | ## Getting help 72 | 73 | In RStudio, click the 'Help' tab in the top nav bar. You will see 'Markdown Quick Reference'. That has basic markdown syntax. You can also click 'Cheatsheets' and there are two references sheets. Using Google, you can also find answers to any questions that the RStudio help files doesn't answer. 74 | 75 | Tips: 76 | 77 | * Markdown is sensitive to leading spaces. " ## Topic" will not produce a header while "## Topic" will. " ```{r}" (note leading space) will not be interpreted as R code. 78 | * Markdown is sensitive to line returns. If you are tying to make a list, "1. item", then you must have two line returns before the "1. item". 79 | 80 | ## Start a new Rmarkdown file 81 | 82 | Click the File tab, then select New File > R Markdown. This will open a template R Markdown file. You will be asked for a title and whether to have the output be html, PDF, or Word. 83 | 84 | ## Put your report online 85 | 86 | #### RPubs 87 | 88 | After knitting your Rmd file, a Preview will appear. Click the 'Publish' button in the top right, select 'RPubs'. This is a free service for publishing output. Follow the instructions and you'll soon have a link you can share. [Here](https://youtu.be/GJ36zamYVLg) is a video showing how to do this. 89 | 90 | #### GitHub 91 | 92 | If you have made your folder a Git repository, you can upload your html file to GitHub and share a link. We will cover that when we talk about websites on GitHub. 93 | 94 | ## Other example Rmds 95 | 96 | * Figures `Figures.Rmd` 97 | * Tables `Table.Rmd` 98 | * Math `Math.Rmd` 99 | * Table of contents and Code folding `Extras.Rmd` 100 | * Presentations 101 | - **ioslidy_presentation.Rmd** Chose File > New > R Markdown > ioslidy presentation to create this presentation template. 102 | - **xaringan_presentation.Rmd** This is the file that produced a lecture in the forecasting workshop. You will need to install the xaringan package. 103 | 104 | ``` 105 | install.packages("xaringan") 106 | ``` -------------------------------------------------------------------------------- /shiny.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Shiny Applications" 3 | output: 4 | html_document: 5 | toc: true 6 | --- 7 | 8 | ```{r setup, include=FALSE} 9 | knitr::opts_chunk$set(echo = TRUE) 10 | ``` 11 | 12 | [shiny applicatons](https://shiny.rstudio.com/) are a GUI (graphical user interface) that can run a R-based application. You can then post this online and it will run from an R server (not your computer). Users can run your application from the web without having to install R. In fact they can run from any browser, for example a smart phone. Alternatively, you can just have it in a package and provide it as a way for users to run analyses when they use your package from R. 13 | 14 | ## Fisheries examples 15 | 16 | Here are two example shiny apps that we have at the NWFSC. They are simple but are intended mainly to allow users to run standard analyses or explore data. shiny applications can be quite sophisticated and 'shiny'. Search online for 'shiny demos'. 17 | 18 | * [Fisheries Economics Data Explorer](https://dataexplorer.northwestscience.fisheries.noaa.gov/fisheye/NetRevExplorer/) 19 | - Proprietary data 20 | 21 | * [Steller Sea Lion Trend Estimation](https://dataexplorer.northwestscience.fisheries.noaa.gov/nwc/agTrend/) 22 | - Needed specialized add-on software 23 | 24 | The U.S. Geological Survey (a U.S. federal agency) also it active in developing tools to be used by the public and serves these on its [usgs-r.github.io](http://usgs-r.github.io/) organizational site. They have been active in using Shiny apps for data exploration. 25 | 26 | * [Lake Erie Fish Survey](https://lebs.shinyapps.io/western-basin/) - [code](https://github.com/taylorstewart/lebs-western-basin-app) 27 | * [toxEval](http://usgs-r.github.io/toxEval/index.html) 28 | 29 | ## Make your first shiny app 30 | 31 | 1. Install the shiny package. 32 | ``` 33 | install.packages("shiny") 34 | ``` 35 | 36 | 1. Click File > New > Shiny Web App... 37 | 2. Select a location to put the application folder. 38 | 3. Select "Multiple File". You can choose single file, but I will demo the separate case with a separate file for the interface code and 'workhorse' code. 39 | 4. Give you application a name. 40 | 4. When the files 'ui.R' and 'server.R' open, click 'Run App'. 41 | 42 | That's it. You made a shiny application. To stop the app, close the window or hit ESC at the command line in RStudio. 43 | 44 | ## ui.R file 45 | 46 | This is the code that specifies the graphical interface. 47 | 48 | ``` 49 | # Define UI for application that draws a histogram 50 | shinyUI(fluidPage( 51 | 52 | # Application title 53 | titlePanel("Old Faithful Geyser Data"), 54 | 55 | # Sidebar with a slider input for number of bins 56 | sidebarLayout( 57 | sidebarPanel( 58 | sliderInput("bins", 59 | "Number of bins:", 60 | min = 1, 61 | max = 50, 62 | value = 30) 63 | ), 64 | 65 | # Show a plot of the generated distribution 66 | mainPanel( 67 | plotOutput("distPlot") 68 | ) 69 | ) 70 | )) 71 | ``` 72 | 73 | ## server.R 74 | 75 | This part has the R code that does the analysis, makes plots, makes table, etc. 76 | 77 | ``` 78 | shinyServer(function(input, output) { 79 | 80 | output$distPlot <- renderPlot({ 81 | 82 | # generate bins based on input$bins from ui.R 83 | x <- faithful[, 2] 84 | bins <- seq(min(x), max(x), length.out = input$bins + 1) 85 | 86 | # draw the histogram with the specified number of bins 87 | hist(x, breaks = bins, col = 'darkgray', border = 'white') 88 | 89 | }) 90 | 91 | }) 92 | ``` 93 | 94 | ## What can shiny apps do and how can I copy that? 95 | 96 | Go to the [RStudio shiny gallery](https://shiny.rstudio.com/gallery/), scroll down to the "Start Simple" section and start there. Once you want to add some more sections to your app, look lower at the Widgets sections. The code for the examples is there. 97 | 98 | You'll also want to go through RStudio's [online tutorial](https://shiny.rstudio.com/tutorial/written-tutorial/lesson1/) for shiny apps. 99 | 100 | Development of anything past a fairly simple shiny app is quite time-consuming. This is a task that I outsource. 101 | 102 | ## Putting your application online 103 | 104 | NW Fisheries Science Center (where I work) has its own R Shiny Server because we has applications with proprietary data that cannot be put on non-NOAA server. In addition, many of our applications require specialized extra software for fitting Bayesian models. Thus our application need more than just R packages. 105 | 106 | However, if your application does not have these special constraints, you can host online for free with [http://www.shinyapps.io/](http://www.shinyapps.io/). 107 | 108 | Follow the instructions [here](https://shiny.rstudio.com/articles/shinyapps.html). In summary: 109 | 110 | 1. Sign up for an account at [http://www.shinyapps.io/](http://www.shinyapps.io/) 111 | 112 | 2. install the rsconnect package 113 | ``` 114 | install.packages("rsconnect") 115 | library(rsconnect) 116 | ``` 117 | 118 | 3. Login into your account at [http://www.shinyapps.io/](http://www.shinyapps.io/). Click on your user name in top right, and click 'Tokens' 119 | 120 | 4. A window should popup with code that looks like 121 | ``` 122 | rsconnect::setAccountInfo(name="", token="", secret="") 123 | ``` 124 | Click 'Copy to clipboard'. 125 | 126 | 5. Paste that code into the command line in R. 127 | 128 | 6. From R, click on the `ui.R` or `server.R` file. Click 'Run App'. You should see a 'Publish' button in the top right. Click that. Select 'shinyapps.io' and log into your account. 129 | 130 | 7. When your app opens, copy the url to the app. 131 | 132 | ## Adding a shiny app to your R package 133 | 134 | 1. In your DESCRIPTION file, add 'shiny' to the list of packages in the 'Imports:' line. 135 | 136 | 1. Create a folder called 'inst' in your package. 137 | 138 | 2. Create a folder called 'shiny' in that. 139 | 140 | 3. Within that folder, put your folder with all your application files. 'ui.R', 'server.R', any data files, any function files. 141 | 142 | 5. Add the following code to a files called `launchApp.R` to your R directory. Change "myapp" and "mypackage" to the right names. 143 | ``` 144 | #' @export 145 | launchApp <- function(x="myapp") { 146 | appDir <- system.file("shiny", "myapp", package = "mypackage") 147 | shiny::runApp(appDir, display.mode = "normal") 148 | } 149 | ``` 150 | Rebuild your package. If later you add more shiny apps, but their folder in the shiny directory too. You run them with `launchApp("mynewapp")`. 151 | 152 | 4. To run 153 | ``` 154 | library(mypackage) 155 | runIt("myapp") 156 | ``` 157 | Replace 'mypackage' and 'myapp' with the right names. 158 | 159 | 160 | -------------------------------------------------------------------------------- /packages.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "R Packages" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | In this section, I show how to make a very simple R package and build it with RStudio. If/when you want to go into R packaging in more depth, see Hadley Wickham's book [R Packages](http://r-pkgs.had.co.nz/). 15 | 16 | ## Why a package? 17 | 18 | An R package is an easy and the standard way to organize your R code, document your code, and share your code with other people. Why use an R package rather than just make a bunch of scripts? 19 | 20 | * **Reproducibility and documentation** In the long-run, you will save yourself much work if you organize and document your code. Rather than writing a series of scripts that you copy and alter for each project, you think about how to make your scripts into functions. 21 | * **You want to share your code** If you are making code to that can be used for different data, rather than only your specific problem, then you want to make a package so that you can share your code. 22 | * **You want to make an application** If you want to make a shiny application, having your code in a package will help. 23 | 24 | ## Set-up 25 | 26 | You can create a template package using `devtools::create()`. 27 | 28 | ``` 29 | library(devtools) 30 | library(roxygen2) 31 | create("myfirstpackage") 32 | ``` 33 | 34 | But for this short course, fork or make a copy of the 'TestPackage' repository. 35 | 36 | Go to the [RVerse-Tutorials\TestPackage](https://github.com/RVerse-Tutorials/TestPackage) repository and click the Fork button in the upper right. You will need to be logged into your GitHub account. 37 | 38 | [Watch a video of this step](https://youtu.be/xeeKrGuaFRg) 39 | 40 | Or you can download a zip file of the repository. To do the latter, you can use the 'download zip file' button on the GitHub repository or you can navigate to your 'RWorkflow' folder in RStudio and click 'More' in the Files panel and select 'Set as working directory'. Then issue these commands. 41 | 42 | ``` 43 | library(RWorkflowsetup) 44 | download.repo("TestPackage") 45 | ``` 46 | 47 | 48 | *INCOIS participants: You will find a copy of the repository in the RWorkflow directory that you copied from the thumb drive.* 49 | 50 | ## Parts of an R package 51 | 52 | ### The essentials 53 | 54 | 2 files and a directory. 55 | 56 | * **DESCRIPTION** This file has the meta-data about your package. Name and what packages it depends on. Most of it is self-explanatory. The `Imports:` is any functions from other packages that you use. 57 | 58 | * **NAMESPACE** This file indicates what needs to be exposed to users for your R package. For our course, you won't need to edit as devtools takes care of it. 59 | 60 | * **R directory** This is where all your R code goes for your package. 61 | 62 | ### Basic add-ons 63 | 64 | * **man** A directory for documentation. You won't need to write this. It will be added automatically. 65 | 66 | * **data** A directory for data files saved in RData format. 67 | 68 | # Let's build it 69 | 70 | * **Download the template files** Copy all the files in [RVerse-Tutorials\TestPackage](https://github.com/RVerse-Tutorials/TestPackage) into a workshop directory called `TestPackage`. 71 | 72 | * **Open in RStudio** Open RStudio and select 'New Project' in upper right. Then select 'Existing Directory', and then choose 'TestPackage'. 73 | 74 | * **Build the package** Click on the 'Build' tab in the upper right, and click 'Build & Reload'. Your package should build and load. 75 | 76 | ## Using your package 77 | 78 | You have built this package and loaded it. You can use the package functions. Type 79 | ``` 80 | SSTplot() 81 | ``` 82 | A plot of SST off the west coast of India right now should appear. 83 | 84 | Type 85 | ``` 86 | dat <- WWWusage 87 | myarimaforecast(dat, nyears=100) 88 | ``` 89 | and a 100 year forecast of internet usage should appear. 90 | 91 | ## Explore the package 92 | 93 | ### The DESCRIPTION file 94 | 95 | Open the file named DESCRIPTION. Most of it is self-explanatory. The `Imports:` is any other R packages that your package needs in order to work. 96 | 97 | ``` 98 | Package: TestPackage 99 | Title: This Is A Template Package 100 | Version: 1.0 101 | Author: Your Name 102 | Maintainer: 103 | Description: This is a template package for students to copy and experiment with for the short course. 104 | Depends: R (>= 3.4.1) 105 | Imports: RCurl, png, grid, forecast 106 | License: GPL-2 107 | Encoding: UTF-8 108 | LazyData: true 109 | RoxygenNote: 6.0.1 110 | ``` 111 | 112 | ### The R Directory: Function code 113 | 114 | This is where functions are put. Each file is a separate function. You can put multiple functions in one file, but that can get confusing unless they are small functions. 115 | 116 | Click on the R directory and open `myarimaforecast.R`. Scroll to the bottom to see the function: 117 | 118 | ``` 119 | myarimaforecast <- function(data, nyears=10){ 120 | fit <- auto.arima(data) 121 | fc <- forecast(fit, h = nyears) 122 | plot(fc) 123 | } 124 | ``` 125 | 126 | It has this structure: name and the names of information passed into the function. 127 | ``` 128 | functionname <- function(infofunctionneeds1, infofunctionneeds2, ...) 129 | ``` 130 | 131 | The part in the middle is the code that does the work. 132 | 133 | ### Function documentation 134 | 135 | Now look at the top of `myarimaforecast.R`. This is the function documentation. It describes what the function does. See `SSTplot()` for another example. Here is the structure of the documentation: 136 | 137 | ``` 138 | #' Briefly What Does Your Package Do 139 | #' 140 | #' Longer description of what your package does. This is about a paragraph in length. 141 | #' 142 | #' @param function_argument describe what the argument is 143 | #' @param function_argument2 add as many @param's as you need 144 | #' @return What does your function return or do? 145 | #' @examples 146 | #' add some working R code that shows how to use your function 147 | #' @export 148 | ``` 149 | 150 | `@export` means that your function is not hidden. Just include this for now. 151 | 152 | Updating the documentation. By default, RStudio does not remake the documentation when you click 'Build & Reload'. You can change that by going to Tools > Project Options > Build Tools and then clicking 'Configure' next to 'Generate documentation with Roxygen' and then clicking the box next to 'Build & Reload'. Or you can run the code: 153 | 154 | ``` 155 | devtools::document() 156 | ``` 157 | 158 | ## Sharing your R package 159 | 160 | You can put your package on GitHub and then people can easily install it. 161 | 162 | Open GitHub Desktop. Click New Repository and then type in 'TestPackage'. 'TestPackage' is the name of the directory with the package not the name of the package. I gave them the same name, which is what you should do in general. 163 | 164 | Now you can click 'Publish repository' from GitHub Desktop. 165 | 166 | Go to your GitHub account (online) and you will see your repository there. 167 | 168 | ## Installing your package from GitHub 169 | 170 | The code you will use to install from GitHub is: 171 | 172 | ``` 173 | library(devtools) 174 | install_github("youraccount/TestPackage") 175 | ``` 176 | 177 | For example to install the package on 'RVerse-Tutorials', you would use 178 | ``` 179 | install_github("RVerse-Tutorials/TestPackage") 180 | ``` 181 | 182 | 183 | Now you have created a set of tools that others can easily install and use. If you fix something, people just reinstall using the above code. 184 | 185 | Each time you change your package, you should update the version so that people know which version they are using. 186 | 187 | 188 | -------------------------------------------------------------------------------- /websites.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Simple Websites from Rmds" 3 | output: 4 | html_document: 5 | toc: true 6 | include: 7 | after_body: footer.html 8 | --- 9 | 10 | ```{r setup, include=FALSE} 11 | knitr::opts_chunk$set(echo = TRUE) 12 | ``` 13 | 14 | This will show you how to make a very simple website with R Markdown and put that online via GitHub Pages. When you are ready to learn more go to the [Links](links.html) page for more tutorials. 15 | 16 | ## Download a template 17 | 18 | Go to the [RVerse-Tutorials\Test-Website](https://github.com/RVerse-Tutorials/Test-Website) repository and click the Fork button in the upper right. You will need to be logged into your GitHub account. 19 | 20 | [Watch a video of this step](https://youtu.be/xeeKrGuaFRg) 21 | 22 | Or you can download a zip file of the repository. To do the latter, you can use the 'download zip file' button on the GitHub repository or you can navigate to your 'RWorkflow' folder in RStudio and click 'More' in the Files panel and select 'Set as working directory'. Then issue these commands. 23 | 24 | ``` 25 | library(RWorkflowsetup) 26 | download.repo("Test-Website") 27 | ``` 28 | 29 | *INCOIS participants: You will find a copy of the repository in the RWorkflow directory that you copied from the thumb drive.* 30 | 31 | ## Build the website 32 | 33 | 1. Open RStudio and 'New Project' in the upper right. Then select 'From Existing Directory' and select the 'Test-Website' directory. 34 | 35 | 2. From RStudio, click 'Build' from upper right and then 'Build Website'. Your website should open. You can select 'View in browser'. 36 | 37 | - You can also right click on 'index.html' from the files, and select 'open in browser'. 38 | 39 | [Watch a video of this step](https://youtu.be/94iHk0UnxJc) 40 | 41 | ## Overview 42 | 43 | There are two required files for a website plus your content (your R Markdown files). 44 | 45 | The first required file is `_site.yml` which is your configuration file. 46 | 47 | The second required file is `index.Rmd` which is your landing page or page #1. 48 | 49 | Your content is specified in additional R Markdown files. Not required, but your website is not very interesting without content. 50 | 51 | ## _site.yml 52 | 53 | The `_site.yml` specifies the basic info about your site and the navigation bar at top. 54 | 55 | ``` 56 | name: "my-website" 57 | output_dir: "." 58 | navbar: 59 | title: "My Website" 60 | left: 61 | - text: "Home" 62 | icon: fa-home 63 | href: index.html 64 | - text: "About" 65 | icon: fa-bullhorn 66 | href: about.html 67 | menu: 68 | - text: "Page A" 69 | href: page_a.html 70 | - text: "Page B" 71 | href: page_b.html 72 | output: 73 | html_document: 74 | theme: readable 75 | toc_depth: 3 76 | toc_float: 77 | collapsed: false 78 | ``` 79 | 80 | ## index.Rmd 81 | 82 | `index.Rmd` is just your landing page. You can have as little or as much content as you want here. When readers click on your site, they will see this page first. 83 | 84 | A minimal `index.Rmd` would look like: 85 | 86 | ``` 87 | --- 88 | title: "My website" 89 | --- 90 | 91 | Here is my website. 92 | ``` 93 | 94 | ## Content 95 | 96 | You can now add as many Rmarkdown files as you want for your content. Each one will be processed into an html file. For example in `Test Website`, we have two files, `about.Rmd` and `contact.Rmd`. Your Rmd files should have the yaml at top and then your Rmarkdown content. 97 | 98 | Here is a simple example. 99 | 100 | ``` 101 | --- 102 | title: Simple Rmd File 103 | --- 104 | 105 | Here is a simple file. 106 | ``` 107 | 108 | `about.Rmd` is a fuller Rmd file with R code and figures. 109 | 110 | If you want the file linked to in your top nav bar, then add it to `_site.yml`. 111 | 112 | ``` 113 | name: "my-website" 114 | output_dir: "." 115 | navbar: 116 | title: "My Website" 117 | left: 118 | - text: "About" 119 | href: about.html 120 | - text: "Contact" 121 | icon: fa-user-circle 122 | href: contact.html 123 | output: 124 | html_document: 125 | theme: readable 126 | toc_depth: 3 127 | toc_float: 128 | collapsed: false 129 | ``` 130 | 131 | ## Make your website live 132 | 133 | [Watch a video of this step](https://youtu.be/eHWi5XmTO8U) 134 | 135 | Here is how to make your website live on GitHub. 136 | 137 | First you need to add this as a repository on GitHub. 138 | 139 | 1. Open GitHub Desktop and select File > New Repository. Type 'Test-Website' (or if you renamed it, then whatever you renamed it to). Leave everything else blank (for now). 140 | 141 | 2. This adds your repository to GitHub Desktop. Now click 'Publish' in the top right corner. If 'private' is checked, uncheck that. 142 | 143 | Next you need to open your repository on GitHub and set it up to serve a webpage. 144 | 145 | 1. Go to your GitHub account. 146 | 2. Click on the new Test-Website repository. 147 | 3. Click on Settings. 148 | ![Settings](images/GitHub_pages_1.png) 149 | 4. Scroll down to GitHub Pages and change source from 'none' to 'master branch'. 150 | ![Source](images/GitHub_pages_2.png) 151 | 5. Wait a few minutes and then go to your new webpage. The link will appear just above where your changed the source. 152 | 153 | ## Extras 154 | 155 | ### Table of Contents 156 | 157 | If you want to see table of contents for your Rmd files, you specify toc properties in your `_site.yml` file. 158 | 159 | ``` 160 | output: 161 | html_document: 162 | theme: readable 163 | toc_depth: 3 164 | toc_float: 165 | collapsed: false 166 | ``` 167 | 168 | and specify `toc: true` in your yaml at the top of your Rmd file. 169 | 170 | ``` 171 | output: 172 | html_document: 173 | toc: true 174 | ``` 175 | 176 | See the `about.Rmd` file for an example. 177 | 178 | ### Themes 179 | 180 | Your `_site.yml` file has a line that specifies the theme. 181 | 182 | ``` 183 | output: 184 | html_document: 185 | theme: readable 186 | ``` 187 | 188 | The following are automatically available to you: bootstrap, cerulean, cosmo, flatly, journal, lumen, paper, readable, sandstone, simplex, spacelab, united and yeti. Try changing the theme to one of these and rebuilding your website. 189 | 190 | You can download other bootstrap css files and put in site_libs if you want other themes. Do a search for 'bootstrap themes free'. 191 | 192 | ### Icons 193 | 194 | You can easily add icons to your navigation tabs. The `icon:` line specifies the icon. See the FontAwesome website for icons available. Put `fa-` in front of the name. For example a photo icon would be specified `fa-picture-o`. 195 | 196 | ``` 197 | left: 198 | - text: "Set-up" 199 | icon: fa-picture-o 200 | href: setup.html 201 | ``` 202 | 203 | ### Customizing 204 | 205 | You can add your own css file to customize the html. Add to your `_site.yml` file: 206 | 207 | ``` 208 | output: 209 | html_document: 210 | theme: cosmo 211 | highlight: textmate 212 | include: 213 | after_body: footer.html 214 | css: styles.css 215 | ``` 216 | 217 | And then add a `styles.css` file to your folder. You can change all the h1 headers to green. 218 | 219 | ``` 220 | h1 { 221 | font-color: green 222 | } 223 | ``` 224 | 225 | Change the font-family and add some more space. 226 | 227 | ``` 228 | body { 229 | font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; 230 | line-height: 2; 231 | } 232 | ``` 233 | 234 | Add more spacing between the sections. 235 | 236 | ``` 237 | .section { 238 | padding-bottom: 2em; 239 | } 240 | ``` 241 | 242 | Etc, etc, etc, etc. 243 | 244 | ### Fixing a navbar that wraps 245 | 246 | The bootstrap css doesn't handle navbars with many tabs very well. It wraps and covers up the text. Adding the following to your `styles.css` file will fix that. 247 | 248 | ``` 249 | /* Need to adjust the navbar behaviour so the navbar doesn't wrap */ 250 | .navbar-nav { 251 | position: fixed; 252 | left: 150px; 253 | width: 700px; 254 | } 255 | 256 | .navbar-header { 257 | position: fixed; 258 | left: 30px; 259 | width: 97%; 260 | } 261 | ``` 262 | -------------------------------------------------------------------------------- /README.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | README.utf8.md 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 33 | 42 | 43 | 44 | 45 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 102 | 103 | 104 | 137 | 138 | 155 | 156 | 157 |
    158 | 159 | 160 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 283 | 284 | 290 | 291 | 292 |
    293 |

    Website for the RWorkflow INCOIS Short Course

    294 |
      295 |
    • Simple website built with R Markdown ‘Build Website’ function.
    • 296 |
    • Click the ‘Build Website’ button in RStudio to make.
    • 297 |
    298 |
    299 | 300 | 301 | 302 | 303 |
    304 | 305 | 317 | 318 | 319 | 327 | 328 | 329 | 330 | -------------------------------------------------------------------------------- /site_libs/font-awesome-5.0.13/css/fa-svg-with-js.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | svg:not(:root).svg-inline--fa { 6 | overflow: visible; } 7 | 8 | .svg-inline--fa { 9 | display: inline-block; 10 | font-size: inherit; 11 | height: 1em; 12 | overflow: visible; 13 | vertical-align: -.125em; } 14 | .svg-inline--fa.fa-lg { 15 | vertical-align: -.225em; } 16 | .svg-inline--fa.fa-w-1 { 17 | width: 0.0625em; } 18 | .svg-inline--fa.fa-w-2 { 19 | width: 0.125em; } 20 | .svg-inline--fa.fa-w-3 { 21 | width: 0.1875em; } 22 | .svg-inline--fa.fa-w-4 { 23 | width: 0.25em; } 24 | .svg-inline--fa.fa-w-5 { 25 | width: 0.3125em; } 26 | .svg-inline--fa.fa-w-6 { 27 | width: 0.375em; } 28 | .svg-inline--fa.fa-w-7 { 29 | width: 0.4375em; } 30 | .svg-inline--fa.fa-w-8 { 31 | width: 0.5em; } 32 | .svg-inline--fa.fa-w-9 { 33 | width: 0.5625em; } 34 | .svg-inline--fa.fa-w-10 { 35 | width: 0.625em; } 36 | .svg-inline--fa.fa-w-11 { 37 | width: 0.6875em; } 38 | .svg-inline--fa.fa-w-12 { 39 | width: 0.75em; } 40 | .svg-inline--fa.fa-w-13 { 41 | width: 0.8125em; } 42 | .svg-inline--fa.fa-w-14 { 43 | width: 0.875em; } 44 | .svg-inline--fa.fa-w-15 { 45 | width: 0.9375em; } 46 | .svg-inline--fa.fa-w-16 { 47 | width: 1em; } 48 | .svg-inline--fa.fa-w-17 { 49 | width: 1.0625em; } 50 | .svg-inline--fa.fa-w-18 { 51 | width: 1.125em; } 52 | .svg-inline--fa.fa-w-19 { 53 | width: 1.1875em; } 54 | .svg-inline--fa.fa-w-20 { 55 | width: 1.25em; } 56 | .svg-inline--fa.fa-pull-left { 57 | margin-right: .3em; 58 | width: auto; } 59 | .svg-inline--fa.fa-pull-right { 60 | margin-left: .3em; 61 | width: auto; } 62 | .svg-inline--fa.fa-border { 63 | height: 1.5em; } 64 | .svg-inline--fa.fa-li { 65 | width: 2em; } 66 | .svg-inline--fa.fa-fw { 67 | width: 1.25em; } 68 | 69 | .fa-layers svg.svg-inline--fa { 70 | bottom: 0; 71 | left: 0; 72 | margin: auto; 73 | position: absolute; 74 | right: 0; 75 | top: 0; } 76 | 77 | .fa-layers { 78 | display: inline-block; 79 | height: 1em; 80 | position: relative; 81 | text-align: center; 82 | vertical-align: -.125em; 83 | width: 1em; } 84 | .fa-layers svg.svg-inline--fa { 85 | -webkit-transform-origin: center center; 86 | transform-origin: center center; } 87 | 88 | .fa-layers-text, .fa-layers-counter { 89 | display: inline-block; 90 | position: absolute; 91 | text-align: center; } 92 | 93 | .fa-layers-text { 94 | left: 50%; 95 | top: 50%; 96 | -webkit-transform: translate(-50%, -50%); 97 | transform: translate(-50%, -50%); 98 | -webkit-transform-origin: center center; 99 | transform-origin: center center; } 100 | 101 | .fa-layers-counter { 102 | background-color: #ff253a; 103 | border-radius: 1em; 104 | -webkit-box-sizing: border-box; 105 | box-sizing: border-box; 106 | color: #fff; 107 | height: 1.5em; 108 | line-height: 1; 109 | max-width: 5em; 110 | min-width: 1.5em; 111 | overflow: hidden; 112 | padding: .25em; 113 | right: 0; 114 | text-overflow: ellipsis; 115 | top: 0; 116 | -webkit-transform: scale(0.25); 117 | transform: scale(0.25); 118 | -webkit-transform-origin: top right; 119 | transform-origin: top right; } 120 | 121 | .fa-layers-bottom-right { 122 | bottom: 0; 123 | right: 0; 124 | top: auto; 125 | -webkit-transform: scale(0.25); 126 | transform: scale(0.25); 127 | -webkit-transform-origin: bottom right; 128 | transform-origin: bottom right; } 129 | 130 | .fa-layers-bottom-left { 131 | bottom: 0; 132 | left: 0; 133 | right: auto; 134 | top: auto; 135 | -webkit-transform: scale(0.25); 136 | transform: scale(0.25); 137 | -webkit-transform-origin: bottom left; 138 | transform-origin: bottom left; } 139 | 140 | .fa-layers-top-right { 141 | right: 0; 142 | top: 0; 143 | -webkit-transform: scale(0.25); 144 | transform: scale(0.25); 145 | -webkit-transform-origin: top right; 146 | transform-origin: top right; } 147 | 148 | .fa-layers-top-left { 149 | left: 0; 150 | right: auto; 151 | top: 0; 152 | -webkit-transform: scale(0.25); 153 | transform: scale(0.25); 154 | -webkit-transform-origin: top left; 155 | transform-origin: top left; } 156 | 157 | .fa-lg { 158 | font-size: 1.33333em; 159 | line-height: 0.75em; 160 | vertical-align: -.0667em; } 161 | 162 | .fa-xs { 163 | font-size: .75em; } 164 | 165 | .fa-sm { 166 | font-size: .875em; } 167 | 168 | .fa-1x { 169 | font-size: 1em; } 170 | 171 | .fa-2x { 172 | font-size: 2em; } 173 | 174 | .fa-3x { 175 | font-size: 3em; } 176 | 177 | .fa-4x { 178 | font-size: 4em; } 179 | 180 | .fa-5x { 181 | font-size: 5em; } 182 | 183 | .fa-6x { 184 | font-size: 6em; } 185 | 186 | .fa-7x { 187 | font-size: 7em; } 188 | 189 | .fa-8x { 190 | font-size: 8em; } 191 | 192 | .fa-9x { 193 | font-size: 9em; } 194 | 195 | .fa-10x { 196 | font-size: 10em; } 197 | 198 | .fa-fw { 199 | text-align: center; 200 | width: 1.25em; } 201 | 202 | .fa-ul { 203 | list-style-type: none; 204 | margin-left: 2.5em; 205 | padding-left: 0; } 206 | .fa-ul > li { 207 | position: relative; } 208 | 209 | .fa-li { 210 | left: -2em; 211 | position: absolute; 212 | text-align: center; 213 | width: 2em; 214 | line-height: inherit; } 215 | 216 | .fa-border { 217 | border: solid 0.08em #eee; 218 | border-radius: .1em; 219 | padding: .2em .25em .15em; } 220 | 221 | .fa-pull-left { 222 | float: left; } 223 | 224 | .fa-pull-right { 225 | float: right; } 226 | 227 | .fa.fa-pull-left, 228 | .fas.fa-pull-left, 229 | .far.fa-pull-left, 230 | .fal.fa-pull-left, 231 | .fab.fa-pull-left { 232 | margin-right: .3em; } 233 | 234 | .fa.fa-pull-right, 235 | .fas.fa-pull-right, 236 | .far.fa-pull-right, 237 | .fal.fa-pull-right, 238 | .fab.fa-pull-right { 239 | margin-left: .3em; } 240 | 241 | .fa-spin { 242 | -webkit-animation: fa-spin 2s infinite linear; 243 | animation: fa-spin 2s infinite linear; } 244 | 245 | .fa-pulse { 246 | -webkit-animation: fa-spin 1s infinite steps(8); 247 | animation: fa-spin 1s infinite steps(8); } 248 | 249 | @-webkit-keyframes fa-spin { 250 | 0% { 251 | -webkit-transform: rotate(0deg); 252 | transform: rotate(0deg); } 253 | 100% { 254 | -webkit-transform: rotate(360deg); 255 | transform: rotate(360deg); } } 256 | 257 | @keyframes fa-spin { 258 | 0% { 259 | -webkit-transform: rotate(0deg); 260 | transform: rotate(0deg); } 261 | 100% { 262 | -webkit-transform: rotate(360deg); 263 | transform: rotate(360deg); } } 264 | 265 | .fa-rotate-90 { 266 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; 267 | -webkit-transform: rotate(90deg); 268 | transform: rotate(90deg); } 269 | 270 | .fa-rotate-180 { 271 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; 272 | -webkit-transform: rotate(180deg); 273 | transform: rotate(180deg); } 274 | 275 | .fa-rotate-270 { 276 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; 277 | -webkit-transform: rotate(270deg); 278 | transform: rotate(270deg); } 279 | 280 | .fa-flip-horizontal { 281 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; 282 | -webkit-transform: scale(-1, 1); 283 | transform: scale(-1, 1); } 284 | 285 | .fa-flip-vertical { 286 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 287 | -webkit-transform: scale(1, -1); 288 | transform: scale(1, -1); } 289 | 290 | .fa-flip-horizontal.fa-flip-vertical { 291 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 292 | -webkit-transform: scale(-1, -1); 293 | transform: scale(-1, -1); } 294 | 295 | :root .fa-rotate-90, 296 | :root .fa-rotate-180, 297 | :root .fa-rotate-270, 298 | :root .fa-flip-horizontal, 299 | :root .fa-flip-vertical { 300 | -webkit-filter: none; 301 | filter: none; } 302 | 303 | .fa-stack { 304 | display: inline-block; 305 | height: 2em; 306 | position: relative; 307 | width: 2em; } 308 | 309 | .fa-stack-1x, 310 | .fa-stack-2x { 311 | bottom: 0; 312 | left: 0; 313 | margin: auto; 314 | position: absolute; 315 | right: 0; 316 | top: 0; } 317 | 318 | .svg-inline--fa.fa-stack-1x { 319 | height: 1em; 320 | width: 1em; } 321 | 322 | .svg-inline--fa.fa-stack-2x { 323 | height: 2em; 324 | width: 2em; } 325 | 326 | .fa-inverse { 327 | color: #fff; } 328 | 329 | .sr-only { 330 | border: 0; 331 | clip: rect(0, 0, 0, 0); 332 | height: 1px; 333 | margin: -1px; 334 | overflow: hidden; 335 | padding: 0; 336 | position: absolute; 337 | width: 1px; } 338 | 339 | .sr-only-focusable:active, .sr-only-focusable:focus { 340 | clip: auto; 341 | height: auto; 342 | margin: 0; 343 | overflow: visible; 344 | position: static; 345 | width: auto; } 346 | -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/jquery-ui.structure.min.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.11.4 - 2016-01-05 2 | * http://jqueryui.com 3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */ 4 | 5 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px} -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | R Workflow Short-Course 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 35 | 44 | 45 | 46 | 47 | 73 | 74 | 75 | 76 | 77 | 78 | 104 | 105 | 106 | 175 | 176 | 193 | 194 | 195 | 196 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 |
    262 | 263 | 264 | 265 | 266 | 376 | 377 | 384 | 385 | 386 |

    Course Announcement

    387 |

    388 |

    This short-course will cover Report-writing and Code documentation with R:

    389 |
      390 |
    • Basic workflow using RStudio, Git and GitHub
    • 391 |
    • Intro to R Markdown
    • 392 |
    • Creating simple websites from RStudio
    • 393 |
    • Build an R package with RStudio
    • 394 |
    • Creating simple websites from R packages on GitHub
    • 395 |
    • Creating a book with R Markdown: Intro to Bookdown.
    • 396 |
    • Creating and publishing RShiny applications
    • 397 |
    398 |
    399 |
    400 |

    ————————————

    401 |
    402 | 403 | 404 | 405 | 406 |
    407 | 408 | 420 | 421 | 422 | 423 | 434 | 435 | 436 | 437 | 438 | 439 | 447 | 448 | 449 | 450 | -------------------------------------------------------------------------------- /links.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Links 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 35 | 44 | 45 | 46 | 47 | 73 | 74 | 75 | 76 | 77 | 78 | 104 | 105 | 106 | 175 | 176 | 193 | 194 | 195 | 196 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 |
    262 | 263 | 264 | 265 | 266 | 376 | 377 | 384 | 385 | 386 |
    387 |

    R Markdown

    388 | 391 |
    392 |
    393 |

    Other Reproducible Research Short-Courses

    394 | 397 |
    398 |
    399 |

    Making simple websites

    400 | 403 |
    404 |
    405 |

    Jekyll

    406 | 410 |
    411 |
    412 |

    Jekyll Templates

    413 | 416 |
    417 | 418 | 419 | 420 | 421 |
    422 | 423 | 435 | 436 | 437 | 438 | 449 | 450 | 451 | 452 | 453 | 454 | 462 | 463 | 464 | 465 | -------------------------------------------------------------------------------- /site_libs/jqueryui-1.11.4/jquery-ui.theme.min.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.11.4 - 2016-01-05 2 | * http://jqueryui.com 3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */ 4 | 5 | .ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#2b2b2b;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:0 0 0 0;padding:5px;background:#666;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} -------------------------------------------------------------------------------- /site_libs/font-awesome-5.0.13/js/fa-v4-shims.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | var l,a;l=this,a=function(){"use strict";var l={};try{"undefined"!=typeof window&&(l=window)}catch(l){}var a=(l.navigator||{}).userAgent,e=void 0===a?"":a,r=l,n=(~e.indexOf("MSIE")||e.indexOf("Trident/"),"___FONT_AWESOME___"),o=function(){try{return"production"===process.env.NODE_ENV}catch(l){return!1}}(),u=[1,2,3,4,5,6,7,8,9,10],t=u.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(u.map(function(l){return l+"x"})).concat(t.map(function(l){return"w-"+l}));var f=r||{};f[n]||(f[n]={}),f[n].styles||(f[n].styles={}),f[n].hooks||(f[n].hooks={}),f[n].shims||(f[n].shims=[]);var i=f[n],s=[["glass",null,"glass-martini"],["meetup","fab",null],["star-o","far","star"],["remove",null,"times"],["close",null,"times"],["gear",null,"cog"],["trash-o","far","trash-alt"],["file-o","far","file"],["clock-o","far","clock"],["arrow-circle-o-down","far","arrow-alt-circle-down"],["arrow-circle-o-up","far","arrow-alt-circle-up"],["play-circle-o","far","play-circle"],["repeat",null,"redo"],["rotate-right",null,"redo"],["refresh",null,"sync"],["list-alt","far",null],["dedent",null,"outdent"],["video-camera",null,"video"],["picture-o","far","image"],["photo","far","image"],["image","far","image"],["pencil",null,"pencil-alt"],["map-marker",null,"map-marker-alt"],["pencil-square-o","far","edit"],["share-square-o","far","share-square"],["check-square-o","far","check-square"],["arrows",null,"arrows-alt"],["times-circle-o","far","times-circle"],["check-circle-o","far","check-circle"],["mail-forward",null,"share"],["eye","far",null],["eye-slash","far",null],["warning",null,"exclamation-triangle"],["calendar",null,"calendar-alt"],["arrows-v",null,"arrows-alt-v"],["arrows-h",null,"arrows-alt-h"],["bar-chart","far","chart-bar"],["bar-chart-o","far","chart-bar"],["twitter-square","fab",null],["facebook-square","fab",null],["gears",null,"cogs"],["thumbs-o-up","far","thumbs-up"],["thumbs-o-down","far","thumbs-down"],["heart-o","far","heart"],["sign-out",null,"sign-out-alt"],["linkedin-square","fab","linkedin"],["thumb-tack",null,"thumbtack"],["external-link",null,"external-link-alt"],["sign-in",null,"sign-in-alt"],["github-square","fab",null],["lemon-o","far","lemon"],["square-o","far","square"],["bookmark-o","far","bookmark"],["twitter","fab",null],["facebook","fab","facebook-f"],["facebook-f","fab","facebook-f"],["github","fab",null],["credit-card","far",null],["feed",null,"rss"],["hdd-o","far","hdd"],["hand-o-right","far","hand-point-right"],["hand-o-left","far","hand-point-left"],["hand-o-up","far","hand-point-up"],["hand-o-down","far","hand-point-down"],["arrows-alt",null,"expand-arrows-alt"],["group",null,"users"],["chain",null,"link"],["scissors",null,"cut"],["files-o","far","copy"],["floppy-o","far","save"],["navicon",null,"bars"],["reorder",null,"bars"],["pinterest","fab",null],["pinterest-square","fab",null],["google-plus-square","fab",null],["google-plus","fab","google-plus-g"],["money","far","money-bill-alt"],["unsorted",null,"sort"],["sort-desc",null,"sort-down"],["sort-asc",null,"sort-up"],["linkedin","fab","linkedin-in"],["rotate-left",null,"undo"],["legal",null,"gavel"],["tachometer",null,"tachometer-alt"],["dashboard",null,"tachometer-alt"],["comment-o","far","comment"],["comments-o","far","comments"],["flash",null,"bolt"],["clipboard","far",null],["paste","far","clipboard"],["lightbulb-o","far","lightbulb"],["exchange",null,"exchange-alt"],["cloud-download",null,"cloud-download-alt"],["cloud-upload",null,"cloud-upload-alt"],["bell-o","far","bell"],["cutlery",null,"utensils"],["file-text-o","far","file-alt"],["building-o","far","building"],["hospital-o","far","hospital"],["tablet",null,"tablet-alt"],["mobile",null,"mobile-alt"],["mobile-phone",null,"mobile-alt"],["circle-o","far","circle"],["mail-reply",null,"reply"],["github-alt","fab",null],["folder-o","far","folder"],["folder-open-o","far","folder-open"],["smile-o","far","smile"],["frown-o","far","frown"],["meh-o","far","meh"],["keyboard-o","far","keyboard"],["flag-o","far","flag"],["mail-reply-all",null,"reply-all"],["star-half-o","far","star-half"],["star-half-empty","far","star-half"],["star-half-full","far","star-half"],["code-fork",null,"code-branch"],["chain-broken",null,"unlink"],["shield",null,"shield-alt"],["calendar-o","far","calendar"],["maxcdn","fab",null],["html5","fab",null],["css3","fab",null],["ticket",null,"ticket-alt"],["minus-square-o","far","minus-square"],["level-up",null,"level-up-alt"],["level-down",null,"level-down-alt"],["pencil-square",null,"pen-square"],["external-link-square",null,"external-link-square-alt"],["compass","far",null],["caret-square-o-down","far","caret-square-down"],["toggle-down","far","caret-square-down"],["caret-square-o-up","far","caret-square-up"],["toggle-up","far","caret-square-up"],["caret-square-o-right","far","caret-square-right"],["toggle-right","far","caret-square-right"],["eur",null,"euro-sign"],["euro",null,"euro-sign"],["gbp",null,"pound-sign"],["usd",null,"dollar-sign"],["dollar",null,"dollar-sign"],["inr",null,"rupee-sign"],["rupee",null,"rupee-sign"],["jpy",null,"yen-sign"],["cny",null,"yen-sign"],["rmb",null,"yen-sign"],["yen",null,"yen-sign"],["rub",null,"ruble-sign"],["ruble",null,"ruble-sign"],["rouble",null,"ruble-sign"],["krw",null,"won-sign"],["won",null,"won-sign"],["btc","fab",null],["bitcoin","fab","btc"],["file-text",null,"file-alt"],["sort-alpha-asc",null,"sort-alpha-down"],["sort-alpha-desc",null,"sort-alpha-up"],["sort-amount-asc",null,"sort-amount-down"],["sort-amount-desc",null,"sort-amount-up"],["sort-numeric-asc",null,"sort-numeric-down"],["sort-numeric-desc",null,"sort-numeric-up"],["youtube-square","fab",null],["youtube","fab",null],["xing","fab",null],["xing-square","fab",null],["youtube-play","fab","youtube"],["dropbox","fab",null],["stack-overflow","fab",null],["instagram","fab",null],["flickr","fab",null],["adn","fab",null],["bitbucket","fab",null],["bitbucket-square","fab","bitbucket"],["tumblr","fab",null],["tumblr-square","fab",null],["long-arrow-down",null,"long-arrow-alt-down"],["long-arrow-up",null,"long-arrow-alt-up"],["long-arrow-left",null,"long-arrow-alt-left"],["long-arrow-right",null,"long-arrow-alt-right"],["apple","fab",null],["windows","fab",null],["android","fab",null],["linux","fab",null],["dribbble","fab",null],["skype","fab",null],["foursquare","fab",null],["trello","fab",null],["gratipay","fab",null],["gittip","fab","gratipay"],["sun-o","far","sun"],["moon-o","far","moon"],["vk","fab",null],["weibo","fab",null],["renren","fab",null],["pagelines","fab",null],["stack-exchange","fab",null],["arrow-circle-o-right","far","arrow-alt-circle-right"],["arrow-circle-o-left","far","arrow-alt-circle-left"],["caret-square-o-left","far","caret-square-left"],["toggle-left","far","caret-square-left"],["dot-circle-o","far","dot-circle"],["vimeo-square","fab",null],["try",null,"lira-sign"],["turkish-lira",null,"lira-sign"],["plus-square-o","far","plus-square"],["slack","fab",null],["wordpress","fab",null],["openid","fab",null],["institution",null,"university"],["bank",null,"university"],["mortar-board",null,"graduation-cap"],["yahoo","fab",null],["google","fab",null],["reddit","fab",null],["reddit-square","fab",null],["stumbleupon-circle","fab",null],["stumbleupon","fab",null],["delicious","fab",null],["digg","fab",null],["pied-piper-pp","fab",null],["pied-piper-alt","fab",null],["drupal","fab",null],["joomla","fab",null],["spoon",null,"utensil-spoon"],["behance","fab",null],["behance-square","fab",null],["steam","fab",null],["steam-square","fab",null],["automobile",null,"car"],["cab",null,"taxi"],["envelope-o","far","envelope"],["deviantart","fab",null],["soundcloud","fab",null],["file-pdf-o","far","file-pdf"],["file-word-o","far","file-word"],["file-excel-o","far","file-excel"],["file-powerpoint-o","far","file-powerpoint"],["file-image-o","far","file-image"],["file-photo-o","far","file-image"],["file-picture-o","far","file-image"],["file-archive-o","far","file-archive"],["file-zip-o","far","file-archive"],["file-audio-o","far","file-audio"],["file-sound-o","far","file-audio"],["file-video-o","far","file-video"],["file-movie-o","far","file-video"],["file-code-o","far","file-code"],["vine","fab",null],["codepen","fab",null],["jsfiddle","fab",null],["life-ring","far",null],["life-bouy","far","life-ring"],["life-buoy","far","life-ring"],["life-saver","far","life-ring"],["support","far","life-ring"],["circle-o-notch",null,"circle-notch"],["rebel","fab",null],["ra","fab","rebel"],["resistance","fab","rebel"],["empire","fab",null],["ge","fab","empire"],["git-square","fab",null],["git","fab",null],["hacker-news","fab",null],["y-combinator-square","fab","hacker-news"],["yc-square","fab","hacker-news"],["tencent-weibo","fab",null],["qq","fab",null],["weixin","fab",null],["wechat","fab","weixin"],["send",null,"paper-plane"],["paper-plane-o","far","paper-plane"],["send-o","far","paper-plane"],["circle-thin","far","circle"],["header",null,"heading"],["sliders",null,"sliders-h"],["futbol-o","far","futbol"],["soccer-ball-o","far","futbol"],["slideshare","fab",null],["twitch","fab",null],["yelp","fab",null],["newspaper-o","far","newspaper"],["paypal","fab",null],["google-wallet","fab",null],["cc-visa","fab",null],["cc-mastercard","fab",null],["cc-discover","fab",null],["cc-amex","fab",null],["cc-paypal","fab",null],["cc-stripe","fab",null],["bell-slash-o","far","bell-slash"],["trash",null,"trash-alt"],["copyright","far",null],["eyedropper",null,"eye-dropper"],["area-chart",null,"chart-area"],["pie-chart",null,"chart-pie"],["line-chart",null,"chart-line"],["lastfm","fab",null],["lastfm-square","fab",null],["ioxhost","fab",null],["angellist","fab",null],["cc","far","closed-captioning"],["ils",null,"shekel-sign"],["shekel",null,"shekel-sign"],["sheqel",null,"shekel-sign"],["meanpath","fab","font-awesome"],["buysellads","fab",null],["connectdevelop","fab",null],["dashcube","fab",null],["forumbee","fab",null],["leanpub","fab",null],["sellsy","fab",null],["shirtsinbulk","fab",null],["simplybuilt","fab",null],["skyatlas","fab",null],["diamond","far","gem"],["intersex",null,"transgender"],["facebook-official","fab","facebook"],["pinterest-p","fab",null],["whatsapp","fab",null],["hotel",null,"bed"],["viacoin","fab",null],["medium","fab",null],["y-combinator","fab",null],["yc","fab","y-combinator"],["optin-monster","fab",null],["opencart","fab",null],["expeditedssl","fab",null],["battery-4",null,"battery-full"],["battery",null,"battery-full"],["battery-3",null,"battery-three-quarters"],["battery-2",null,"battery-half"],["battery-1",null,"battery-quarter"],["battery-0",null,"battery-empty"],["object-group","far",null],["object-ungroup","far",null],["sticky-note-o","far","sticky-note"],["cc-jcb","fab",null],["cc-diners-club","fab",null],["clone","far",null],["hourglass-o","far","hourglass"],["hourglass-1",null,"hourglass-start"],["hourglass-2",null,"hourglass-half"],["hourglass-3",null,"hourglass-end"],["hand-rock-o","far","hand-rock"],["hand-grab-o","far","hand-rock"],["hand-paper-o","far","hand-paper"],["hand-stop-o","far","hand-paper"],["hand-scissors-o","far","hand-scissors"],["hand-lizard-o","far","hand-lizard"],["hand-spock-o","far","hand-spock"],["hand-pointer-o","far","hand-pointer"],["hand-peace-o","far","hand-peace"],["registered","far",null],["creative-commons","fab",null],["gg","fab",null],["gg-circle","fab",null],["tripadvisor","fab",null],["odnoklassniki","fab",null],["odnoklassniki-square","fab",null],["get-pocket","fab",null],["wikipedia-w","fab",null],["safari","fab",null],["chrome","fab",null],["firefox","fab",null],["opera","fab",null],["internet-explorer","fab",null],["television",null,"tv"],["contao","fab",null],["500px","fab",null],["amazon","fab",null],["calendar-plus-o","far","calendar-plus"],["calendar-minus-o","far","calendar-minus"],["calendar-times-o","far","calendar-times"],["calendar-check-o","far","calendar-check"],["map-o","far","map"],["commenting","far","comment-dots"],["commenting-o","far","comment-dots"],["houzz","fab",null],["vimeo","fab","vimeo-v"],["black-tie","fab",null],["fonticons","fab",null],["reddit-alien","fab",null],["edge","fab",null],["credit-card-alt",null,"credit-card"],["codiepie","fab",null],["modx","fab",null],["fort-awesome","fab",null],["usb","fab",null],["product-hunt","fab",null],["mixcloud","fab",null],["scribd","fab",null],["pause-circle-o","far","pause-circle"],["stop-circle-o","far","stop-circle"],["bluetooth","fab",null],["bluetooth-b","fab",null],["gitlab","fab",null],["wpbeginner","fab",null],["wpforms","fab",null],["envira","fab",null],["wheelchair-alt","fab","accessible-icon"],["question-circle-o","far","question-circle"],["volume-control-phone",null,"phone-volume"],["asl-interpreting",null,"american-sign-language-interpreting"],["deafness",null,"deaf"],["hard-of-hearing",null,"deaf"],["glide","fab",null],["glide-g","fab",null],["signing",null,"sign-language"],["viadeo","fab",null],["viadeo-square","fab",null],["snapchat","fab",null],["snapchat-ghost","fab",null],["snapchat-square","fab",null],["pied-piper","fab",null],["first-order","fab",null],["yoast","fab",null],["themeisle","fab",null],["google-plus-official","fab","google-plus"],["google-plus-circle","fab","google-plus"],["font-awesome","fab",null],["fa","fab","font-awesome"],["handshake-o","far","handshake"],["envelope-open-o","far","envelope-open"],["linode","fab",null],["address-book-o","far","address-book"],["vcard",null,"address-card"],["address-card-o","far","address-card"],["vcard-o","far","address-card"],["user-circle-o","far","user-circle"],["user-o","far","user"],["id-badge","far",null],["drivers-license",null,"id-card"],["id-card-o","far","id-card"],["drivers-license-o","far","id-card"],["quora","fab",null],["free-code-camp","fab",null],["telegram","fab",null],["thermometer-4",null,"thermometer-full"],["thermometer",null,"thermometer-full"],["thermometer-3",null,"thermometer-three-quarters"],["thermometer-2",null,"thermometer-half"],["thermometer-1",null,"thermometer-quarter"],["thermometer-0",null,"thermometer-empty"],["bathtub",null,"bath"],["s15",null,"bath"],["window-maximize","far",null],["window-restore","far",null],["times-rectangle",null,"window-close"],["window-close-o","far","window-close"],["times-rectangle-o","far","window-close"],["bandcamp","fab",null],["grav","fab",null],["etsy","fab",null],["imdb","fab",null],["ravelry","fab",null],["eercast","fab","sellcast"],["snowflake-o","far","snowflake"],["superpowers","fab",null],["wpexplorer","fab",null],["spotify","fab",null]];return function(l){try{l()}catch(l){if(!o)throw l}}(function(){var l;"function"==typeof i.hooks.addShims?i.hooks.addShims(s):(l=i.shims).push.apply(l,s)}),s},"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):l["fontawesome-free-shims"]=a(); -------------------------------------------------------------------------------- /bookdown.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Bookdown 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 47 | 48 | 49 | 50 | 76 | 77 | 78 | 79 | 80 | 81 | 107 | 108 | 109 | 178 | 179 | 196 | 197 | 198 | 199 | 253 | 254 | 255 | 256 | 257 | 258 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 |
    334 | 335 | 336 | 337 |
    338 |
    339 |
    340 |
    341 |
    342 | 343 |
    344 | 345 | 346 | 347 | 348 | 458 | 459 | 466 | 467 | 468 |

    The bookdown package makes it easy to create books with R Markdown and RStudio. These can be easily published online and in various formats: HTML, PDF, ePub, and Kindle. Read about bookdown and see hundreds of online books written with it at bookdown.org.

    469 |

    Once you are ready to write your own book, read the online documentation.

    470 |

    Examples:

    471 | 475 |
    476 |

    Download the template

    477 |

    Download a zip file of the bookdown-demo repository. You can use the ‘download zip file’ button on the GitHub repository or you can navigate to your ‘RWorkflow’ folder in RStudio and click ‘More’ in the Files panel and select ‘Set as working directory’. Then issue these commands.

    478 |
    library(RWorkflowsetup)
    479 | download.repo("bookdown-demo")
    480 |

    INCOIS participants: You will find a copy of the repository in the RWorkflow directory that you copied from the thumb drive.

    481 |

    This is a copy of the original bookdown-demo by Yihui Xie, the creator of the bookdown package, with a few changes so it works immediately with GitHub.

    482 |
    483 |
    484 |

    Build the book

    485 |
      486 |
    1. Open RStudio
    2. 487 |
    3. Click the project button in top right and select ‘New Project’.
    4. 488 |
    5. Click ‘Existing Directory’ and choose your ‘bookdown-demo’ folder.
    6. 489 |
    7. Click the Build tab and click ‘Build book’
    8. 490 |
    491 |

    Your book should appear.

    492 |
    493 |
    494 |

    Post and online version of your book via GitHub

    495 |

    You can host your book many places. To do so on GitHub, do the following.

    496 |
      497 |
    1. Make your bookdown-demo folder into a repository.
    2. 498 |
    499 |
      500 |
    • Open GitHub Desktop, click ‘File > New Repository’
    • 501 |
    • Type bookdown-demo as the name and <yourbasedir>\RWorkflow as the local path. This assumes that the bookdown-demo folder is in the RWorkflow directory. If not, replace the path with the directory where you put the bookdown-demo folder.
    • 502 |
    503 |
      504 |
    1. Publish the bookdown-demo folder to GitHub. Click the Publish button in GitHub Desktop.
    2. 505 |
    3. Open the repository on GitHub.
    4. 506 |
    507 |
      508 |
    • Click Settings, and scroll down to GitHub Pages. Change the source to master branch/docs folder and click save.
    • 509 |
    510 |
      511 |
    1. Your book should appear at https://<yourname>.github.io/bookdown-demo/ in a few minutes.
    2. 512 |
    513 |
    514 | 515 |
    516 | 534 | 535 | 536 | 537 |
    538 |
    539 | 540 |
    541 | 542 | 554 | 555 | 556 | 557 | 568 | 569 | 570 | 571 | 597 | 598 | 599 | 607 | 608 | 609 | 610 | -------------------------------------------------------------------------------- /rstudio.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | RStudio Basics 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 47 | 48 | 49 | 50 | 76 | 77 | 78 | 79 | 80 | 81 | 107 | 108 | 109 | 178 | 179 | 196 | 197 | 198 | 199 | 253 | 254 | 255 | 256 | 257 | 258 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 |
    334 | 335 | 336 | 337 |
    338 |
    339 |
    340 |
    341 |
    342 | 343 |
    344 | 345 | 346 | 347 | 348 | 458 | 459 | 466 | 467 | 468 |
    469 |

    Never worked with R?

    470 |

    If you have never worked with R, you can get a basic familiarity by going through this free tutorial. Takes about 4 hours.

    471 |

    You can also learn R straight from within R using the swirl package. This doesn’t require internet access except to install the package.

    472 |

    Here is another basic R introduction from ComputerWorld.

    473 |
    474 |
    475 |

    RStudio Overview

    476 |

    When you open RStudio you will see 4 panels:

    477 |
    478 | RStudio-panels 479 |

    RStudio-panels

    480 |
    481 |
    482 |
    483 |

    Create an RStudio Project

    484 |
      485 |
    1. In RStudio, choose “File->New Project…”
    2. 486 |
    3. Then choose “New Directory” and then choose “Empty Project”
    4. 487 |
    5. In the next dialog, choose a name (it is best to use only letters, numbers, dashes, and underscores, and include no spaces in the name).
      488 |
    6. 489 |
    7. Then click “Create Project”.
    8. 490 |
    491 |

    That should give you a new project.

    492 |
    493 |
    494 |

    Add a new script file

    495 |
      496 |
    1. Add a new file using ‘File > New File > R Script’
    2. 497 |
    3. Or you can click the new icon in top left corner.
    4. 498 |
    5. Add some code to that file. Copy and paste in:
    6. 499 |
    500 |
    require(graphics)
    501 | ## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
    502 | ## Page 9: Plant Weight Data.
    503 | ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
    504 | trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
    505 | group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
    506 | weight <- c(ctl, trt)
    507 | lm.D9 <- lm(weight ~ group)
    508 | opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0))
    509 | plot(lm.D9, las = 1)      # Residuals, Fitted, ...
    510 | par(opar)
    511 |
    512 |
    513 |

    Run the code

    514 |
      515 |
    1. Select all the lines of code and select ‘Run’
    2. 516 |
    3. Run all the code by selecting ‘Source’
    4. 517 |
    518 |
    519 |
    520 |

    Workflow basics

    521 |

    Read through the following sections of the R for Data Science book and work through the examples.

    522 | 527 |

    R for Data Science is a great book to introduce you to working with data in R, but we are not going to be doing that in this workshop.

    528 |
    529 | 530 |
    531 | 549 | 550 | 551 | 552 |
    553 |
    554 | 555 |
    556 | 557 | 569 | 570 | 571 | 572 | 583 | 584 | 585 | 586 | 612 | 613 | 614 | 622 | 623 | 624 | 625 | -------------------------------------------------------------------------------- /Git-RStudio.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Notes on Git and RStudio 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 47 | 48 | 49 | 50 | 76 | 77 | 78 | 79 | 80 | 81 | 107 | 108 | 109 | 178 | 179 | 196 | 197 | 198 | 199 | 253 | 254 | 255 | 256 | 257 | 258 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 |
    334 | 335 | 336 | 337 |
    338 |
    339 |
    340 |
    341 |
    342 | 343 |
    344 | 345 | 346 | 347 | 348 | 458 | 459 | 466 | 467 | 468 |
    469 |

    Using Git in RStudio

    470 |

    You can read a whole book about Git and R Happy Git with R.

    471 |

    We will not be using Git in RStudio because it can be hard to set-up and hard to debug if you run into problems. If you want to use it, read these instructions.

    472 |

    In particular, read the part about how to set-up so you don’t have to enter your username and password for every commmit.

    473 |
    474 |
    475 |

    Alternate methods for downloading repositories

    476 |
    477 |

    Alternate Method #1 Download from within R

    478 |

    The ‘RWorkflowsetup’ package has a download function. This function will create a folder with the name of the repository. Here is code to download the repository ‘Rmarkdown-Tutorial’. For others, just change the name of the repository.

    479 |
    library(RWorkflowsetup)
    480 | repo = "Test"
    481 | download.repo(repo)
    482 |
    483 |
    484 |

    Alternate Method #2

    485 |
      486 |
    1. From RStudio, go to the menu option ‘File->New Project…’. Then from the resulting dialog, choose “Version Control”. Then choose “Git”. Then it asks for a “repository URL”. Supply this: https://github.com/RVerse-Tutorials/Test and leave the “Project Directory Name” empty. And then choose a directory in which to put it and click OK.

    2. 487 |
    3. Click on the ‘More’ link in the Git Window of RStudio, and click ‘Shell’. Then issue this command.
    4. 488 |
    489 |
    git remote rm origin
    490 |

    This detaches the cloned repository from the remote repository on GitHub from where you cloned it. That will pull the RStudio project off of GitHub, make a local clone of it on your hard drive and open.

    491 |
    492 |
    493 |

    Alternate Method #3

    494 |

    Go to https://github.com/RVerse-Tutorials/Test and click ‘Clone or download’ and chose ‘Download Zip’. Unzip and you’ll probably want to remove ‘master’ added to the end of the repository name.

    495 |

    If you chose, ‘Clone in Desktop’, you’ll need to open a terminal window, navigate to the new folder you just downloaded, and run the git code git remote rm origin from within the terminal to detach the repository from the RVerse-Tutorials GitHub account.

    496 |
    497 |
    498 |
    499 |

    Packages with C++ code

    500 |

    We will not be doing this in this short course, but often you will want to install packages with C++ code. To do that, you will need Rtools (Windows) or Xcode (Mac)

    501 |
      502 |
    • Rtools Windows users Rtools also so you can build packages with C++ code if needed. See comments here about changing path. Rtools

    • 503 |
    • Xcode Mac users Open terminal and type the following command xcode-select --install

    • 504 |
    505 |
    506 | 507 |
    508 | 526 | 527 | 528 | 529 |
    530 |
    531 | 532 |
    533 | 534 | 546 | 547 | 548 | 549 | 560 | 561 | 562 | 563 | 589 | 590 | 591 | 599 | 600 | 601 | 602 | --------------------------------------------------------------------------------