Search

Riinu's scripting diary

If it ain't broke, you're outdated

Your first Shiny app

What is Shiny?

Shiny is an R package (install.packages("shiny")) for making your outputs interactive. Furthermore, Shiny creates web apps meaning your work can be shared online with people who don’t use R. In other words: with Shiny, R people can make websites without ever learning Javascript etc.

I am completely obsessed with Shiny and these days I end up presenting most of my work in a Shiny app.

If it’s not worth putting in a Shiny app it’s not worth doing.

Your first Shiny app

Getting started with Shiny is actually a lot easier than a lot of people make it out to be. So I created a very short (9 slides) presentation outlining my 5-step programme for your first Shiny app.

This is the app: https://riinu.shinyapps.io/shiny_testing/

This is the presentation: http://rpubs.com/riinu/shiny

And here are the steps (also included in the presentation):

STEP 0install.packages("shiny"). Use RStudio.

STEP 1: Create a script called app.R using this skeleton:

STEP 2: Copy your plot code into the renderPlot function.

STEP 3: Add a sliderInput to your User Interface (ui). A slider is just one of the many Shiny widgets you could be using: https://shiny.rstudio.com/gallery/widget-gallery.html

STEP 4: Tell your Server you wish the dplyr::filter() to use the value from the slider. All inputs from the User Interface (ui) are stored in input$variable_name: replace the 2007 with input$year.

STEP 5 (optional): Add animate = TRUE.

Press Control+Shift+Enter or the “Run App” button. You now have a Shiny app running on your computer. To deploy it to the internet, e.g. like I’ve done in the link above, see this.

 

R: Replacing NAs in all factors with ‘Missing’

With a simple combination of mutate_if and fct_explicit_na, you can replace all NAs in all factors with “Missing”:

If some of the words/symbols appear in white font, see the example here: Gist: factor_NA_levels.R

dplyr reference: http://dplyr.tidyverse.org/reference/index.html

forcats reference: http://dplyr.tidyverse.org/reference/index.html

http://surgicalinformatics.org/

logo_400

Handling your .bib file (LaTex bibliography)

To create a .bib file that only includes the citations you used in the manuscript:

bibexport -o extracted_file.bib manuscript.aux

There are a few issues with this though. The command bibexport comes with the installation of TexLive, but my Windows computer (bless) does not cooperate (“bibexport is not recognised as an internal or external command…”) . So I can only use it on my Mac (luv ya).

 

Get data from ggplot()

ggplot includes built in and seamless functionality that summarises your data before plotting it. As shown in the example below, ggplot_build() can be used to access the summarised dataset.

summarised_barplot

fill         y count prop x PANEL group    ...
#D7301F 0.2147239    35    1 1     1     4 ...
#FC8D59 0.6871166    77    1 1     1     3 ...
#FDCC8A 0.9570552    44    1 1     1     2 ...
#FEF0D9 1.0000000     7    1 1     1     1 ...
#D7301F 0.1696429    38    1 2     1     8 ...
#FC8D59 0.6116071    99    1 2     1     7 ...
...

HealthyR – a new 2.5 day quick-start R course

 

ekg_thick.png

http://healthyr.surgicalinformatics.org/

R lingua: library vs package

library_vs_package

 

Online syntax highlighter

http://markup.su/highlighter/

 

The style I use: Dawn

R: ISO codes and country names

install.packages('maps')

iso = maps::iso3166

> str(iso)
'data.frame':   269 obs. of  5 variables:
 $ a2         : chr  "AW" ...
 $ a3         : chr  "ABW" ...
 $ ISOname    : chr  "Aruba" ..
 $ mapname    : chr  "Aruba" ...
 $ sovereignty: chr  "Netherlands" ...

Powered by WordPress.com.

Up ↑