├── freeR.Rproj ├── styles.css ├── README.md ├── app.R └── r_reading_list.csv /freeR.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | /*Use same font throughout app*/ 2 | @import url("//fonts.googleapis.com/css?family=Inconsolata"); 3 | 4 | * { 5 | font-family: 'Inconsolata' !important; 6 | color: #555555; 7 | } 8 | 9 | body { 10 | background-color: #F4F4F4; 11 | } 12 | 13 | /*Colour hyperlinks*/ 14 | a { 15 | color: #EC7171; 16 | } 17 | 18 | a:hover { 19 | color: #EC7171; 20 | } 21 | 22 | a:active { 23 | color: #EC7171; 24 | } 25 | 26 | /*Header*/ 27 | h2 { 28 | color: black !important; 29 | font-weight: 700; 30 | line-height: 1.1; 31 | } 32 | 33 | /* Search Box*/ 34 | input[type=search]:focus { 35 | border-color: #EC7171; 36 | outline: 0; 37 | -webkit-box-shadow: inset 0 1px 1px #EC7171,0 0 8px #EC7171; 38 | box-shadow: inset 0 1px 1px #EC7171,0 0 8px #EC7171; 39 | } 40 | 41 | /*Select box*/ 42 | select:focus { 43 | border-color: #EC7171; 44 | outline: 0; 45 | -webkit-box-shadow: inset 0 1px 1px #EC7171,0 0 8px #EC7171; 46 | box-shadow: inset 0 1px 1px #EC7171,0 0 8px #EC7171; 47 | } 48 | 49 | /*Select options - currently not working*/ 50 | option:hover { 51 | background-color: #EC7171 !important 52 | } 53 | 54 | /*Selected table row*/ 55 | table.dataTable tr.selected td, table.dataTable td.selected { 56 | background-color: #F1D1D1 !important; 57 | } 58 | 59 | /*Hover table row*/ 60 | table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { 61 | background-color: #F1D1D1 !important; 62 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # freeR 2 | 3 | * A Shiny App that provides links to Free R Resources. 4 | * Currently contains a list of R books freely available online. 5 | * Primarily for my own reference, as the list expands it will be easier to search the table for required resource, and it reduces multiple bookmarks to [just one](https://committedtotape.shinyapps.io/freeR/)! 6 | * Blog post that walks through the app is here: [https://davidsmale.netlify.com/portfolio/free-r/](https://davidsmale.netlify.com/portfolio/free-r/) 7 | * If you would like a book added you can: 8 | + Make a pull request to add further entries to the `r_reading_list.csv` file, following structure of previous entries. 9 | + Tweet me @[committedtotape](https://twitter.com/committedtotape) 10 | * Thank you to the following people for providing book suggestions: 11 | + @[parttimeanalyst](https://twitter.com/parttimeanalyst) 12 | + @[R_by_Ryo](https://twitter.com/R_by_Ryo) 13 | + @[monkmanmh](https://twitter.com/monkmanmh) 14 | + @[wjakethompson](https://twitter.com/wjakethompson) 15 | + @[JLS_DataScience](https://twitter.com/JLS_DataScience) 16 | + @[Richard_S_Hanna](https://twitter.com/Richard_S_Hanna) 17 | + @[BNeelon](https://twitter.com/BNeelon) 18 | + @[jo_hardin47](https://twitter.com/jo_hardin47) 19 | + @[_PaulaMoraga_](https://twitter.com/_PaulaMoraga_) 20 | + @[kaopubear](https://twitter.com/kaopubear) 21 | + @[EmilyRiederer](https://twitter.com/EmilyRiederer) 22 | + [Matthias Grenié](https://github.com/Rekyt) 23 | -------------------------------------------------------------------------------- /app.R: -------------------------------------------------------------------------------- 1 | library(shiny) 2 | library(tidyverse) 3 | library(DT) 4 | library(extrafont) 5 | 6 | # Pre-processing ---------------------------- 7 | 8 | # Read in csv file of resources compiled by me 9 | reading_list <- read_csv("r_reading_list.csv") 10 | 11 | # Create string for hyperlinks 12 | reading_table <- reading_list %>% 13 | mutate(title_link = paste0("",title,"")) %>% 14 | select(title_link, everything(), -title, -link) 15 | 16 | # UI ------------------------------- 17 | 18 | ui <- fluidPage( 19 | # formatting with css 20 | includeCSS("styles.css"), 21 | 22 | # Application title 23 | 24 | h2(toupper("Free R Reading Material")), 25 | 26 | # Intro text 27 | p("A collection of books about the R programming language and Data Science, that you can read for free!"), 28 | 29 | p("If there is a book that you think I should add to the list, then please let me know", 30 | a("@committedtotape", href = "https://twitter.com/committedtotape")), 31 | 32 | # DT table 33 | DTOutput("tbl"), 34 | 35 | br(), 36 | 37 | # credits 38 | div(p("Compiled by", a("@committedtotape", href = "https://twitter.com/committedtotape"), "using the shiny and DT packages"), 39 | p("Blog:", a("davidsmale.netlify.com", href = "https://davidsmale.netlify.com/portfolio/")), 40 | p("GitHub:", a("freeR", href = "https://github.com/committedtotape/freeR")), 41 | style="text-align: right;") 42 | 43 | 44 | 45 | ) 46 | 47 | 48 | 49 | # Server ------------------------------- 50 | 51 | server <- function(input, output) { 52 | 53 | # render DT table 54 | output$tbl <- renderDT({ 55 | 56 | datatable(reading_table, 57 | colnames = c('Title', 'Author(s)', 'Description', 'Keywords/Packages'), 58 | rownames = FALSE, 59 | escape = FALSE, 60 | class = 'display', 61 | options = list(pageLength = 20, 62 | lengthMenu = c(10, 20, 50)) 63 | 64 | ) 65 | }) 66 | 67 | } 68 | 69 | # Run the application 70 | 71 | shinyApp(ui = ui, server = server) 72 | 73 | -------------------------------------------------------------------------------- /r_reading_list.csv: -------------------------------------------------------------------------------- 1 | title,author,description,link,tags 2 | "R for Data Science","Garrett Grolemund, Hadley Wickham","This book will teach you how to do data science with R","https://r4ds.had.co.nz/","tidyverse,ggplot2,dplyr,tidyr,readr" 3 | "Hands-On Programming with R","Garrett Grolemund","This book will teach you how to program in R, with hands-on examples.","https://rstudio-education.github.io/hopr/","functions,programming,simulations" 4 | "R Graphics Cookbook","Winston Chang","A practical guide that provides more than 150 recipes to help you generate high-quality graphs quickly","https://r-graphics.org/","ggplot2,data visualization" 5 | "Modern Dive","Chester Ismay, Albert Y. Kim","Statistical Inference via Data Science","https://moderndive.com/","tidyverse,infer,broom,inference,regression,sampling,hypothesis testing,confidence intervals" 6 | "An Introduction to Statistical Learning with Applications in R","Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani","This book provides an introduction to statistical learning methods.","http://www-bcf.usc.edu/~gareth/ISL/","machine learning,supervised learning,unsupervised learning" 7 | "Data Visualization A Practical Introduction","Kieran Healy","An introduction to both the ideas and the methods of data visualization in a sensible, comprehensible, reproducible way.","http://socviz.co/","data visualization,ggplot2" 8 | "R Markdown: The Definitive Guide","Yihui Xie, J. J. Allaire, Garrett Grolemund","A definitive guide to the RMarkdown ecosystem","https://bookdown.org/yihui/rmarkdown/","rmarkdown,bookdown,blogdown,xaringan" 9 | "R Packages","Hadley Wickham","Learn how to turn your code into packages that others can easily download and use.","http://r-pkgs.had.co.nz/","vignettes,testing,namespaces,git,github" 10 | "Happy Git and GitHub for the useR","Jennifer Bryan","Instructions on how to install and integrate Git and GitHub into your daily work with R","https://happygitwithr.com/","git,github,version control" 11 | "blogdown: Creating Websites with R Markdown","Yihui Xie, Amber Thomas, Alison Presmanes Hill","Instructions on how to create websites using R Markdown and Hugo","https://bookdown.org/yihui/blogdown/","rmarkdown,websites,blogs,hugo,netlify" 12 | "Advanced R","Hadley Wickham","The book is designed primarily for R users who want to improve their programming skills and understanding of the language.","http://adv-r.had.co.nz/","functional programming,metaprogramming" 13 | "Forecasting: Principles and Practice","Rob J Hyndman, George Athanasopoulos","A comprehensive introduction to forecasting methods","https://otexts.com/fpp2/","time series,ARIMA,forecast" 14 | "Practical R for Mass Communication and Journalism","Sharon Machlis","Ideas, tools, and techniques for incorporating data and visualizations into your narratives.","http://www.machlis.com/R4Journalists/index.html","storytelling,data visualization,tidyverse" 15 | "Text Mining with R","Julia Silge, David Robinson","Introduction of text mining using the tidytext package and other tidy tools in R.","https://www.tidytextmining.com/","tidytext,sentiment analysis,NLP" 16 | "Feature Engineering and Selection: A Practical Approach for Predictive Models","Max Kuhn, Kjell Johnson","The goal of this book is to help practitioners build better models by focusing on the predictors.","http://www.feat.engineering/index.html","predictive modelling" 17 | "bookdown: Authoring Books and Technical Documents with R Markdown","Yihui Xie","A guide to authoring books and technical documents with R Markdown.","https://bookdown.org/yihui/bookdown/","markdown,r markdown" 18 | "21 Recipes for Mining Twitter Data with rtweet","Bob Rudis","Provides 21 easily adaptable Twitter mining recipes","https://rud.is/books/21-recipes/","rtweet,twitter,text mining" 19 | "Interactive web-based data visualization with R, plotly, and shiny","Carson Sievert","Gain insight and practical skills for creating interactive and dynamic web graphics for data analysis from R","https://plotly-r.com/","plotly,tidyverse,shiny" 20 | "Spatial Data Science","Edzer Pebesma, Roger Bivand","Introduces and explains the concepts underlying spatial data.","https://keen-swartz-3146c4.netlify.com/","sf,raster,maps" 21 | "Efficient R programming","Colin Gillespie, Robin Lovelace","This book is for anyone who wants to make their R code faster to type, faster to run and more scalable.","https://csgillespie.github.io/efficientR/","microbenchmark,profvis" 22 | "Fundamentals of Data Visualization","Claus O. Wilke","A guide to making visualizations that accurately reflect the data, tell a story, and look professional.","https://serialmentor.com/dataviz/","data visualization" 23 | "Geospatial Health Data: Modeling and Visualization with R-INLA and Shiny","Paula Moraga","Describes spatial and spatio-temporal statistical methods and visualization techniques to analyze georeferenced health data in R.","https://paula-moraga.github.io/book-geospatial/","epidemiology,biostatistics,shiny,flexdashboard" 24 | "Computational Genomics with R","Altuna Akalin","The aim of this book is to provide the fundamentals for data analysis for genomics.","http://compgenomr.github.io/book/","genome biology" 25 | "Broadening Your Statistical Horizons: Generalized Linear Models and Multilevel Models","Julie Legler,Paul Roback","Intended to be accessible to undergraduate students who have successfully completed a regression course.","https://bookdown.org/roback/bookdown-bysh/","GLMs,modeling,poisson" 26 | "Introduction to Econometrics with R","Christoph Hanck, Martin Arnold, Alexander Gerber, Martin Schmelzer","Aims to provide students with a platform-independent e-learning arrangement by seamlessly intertwining theoretical core knowledge and empirical skills in undergraduate econometrics","https://www.econometrics-with-r.org/","econometrics,panel data,time series" 27 | "Geocomputation with R","Robin Lovelace, Jakub Nowosad, Jannes Muenchow","This book is for people who want to analyze, visualize and model geographic data with open source software. The book is designed for intermediate-to-advanced R users interested in geocomputation and R beginners who have prior experience with geographic data.","https://geocompr.robinlovelace.net/","sf,sp,spatial analysis,map" 28 | "Spatial Data Science","Edzer Pebesma, Roger Bivand","This book introduces and explains the concepts underlying spatial data: points, lines, polygons, rasters, coverages, geometry attributes, data cubes, reference systems, as well as higher-level concepts including how attributes relate to geometries and how this affects analysis.","https://keen-swartz-3146c4.netlify.com/","spatial data analysis,maps" 29 | "Mastering Shiny","Hadley Wickham","This book complements Shiny’s online documentation and is intended to help app authors develop a deeper understanding of Shiny","https://mastering-shiny.org/","shiny,tidyverse" 30 | "Hands-On Machine Learning with R","Bradley Boehmke, Brandon Greenwell","This book provides hands-on modules for many of the most common machine learning methods","https://bradleyboehmke.github.io/HOML/","machine learning,glmnet,xgboost,lime,ranger" 31 | "Agile Data Science with R","Edwin Thoen","A workflow for doing data science in R, using Agile principles","https://bradleyboehmke.github.io/HOML/","agile,workflow,version control" 32 | "ggplot2: Elegant Graphics for Data Analysis","Hadley Wickham","Master ggplot2 and the rich grammar that underlies it","https://ggplot2-book.org/","ggplot2,data visualization" 33 | "Mastering Spark with R","Javier Luraschi, Kevin Kuo, Edgar Ruiz","In this book you will learn how to use Apache Spark with R.","https://therinspark.com/","spark,sparklyr,big data" 34 | --------------------------------------------------------------------------------