We are R-Ladies Profile picture
Sep 16 โ€ข 24 tweets โ€ข 9 min read
๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป How do you set up your own #ShinyApp?

It's easy in #rstats! Start a new #Rproject and select "Shiny Application". It will create a project with an "app.R" file for you โœจ Snapshot showing RStudio Project Wizard where "Shiny Ap
Once it's open, you can replace the code that is already in the "app.R" file with this code snippet below๐Ÿ‘‡ It does all the magic and shows how you can build a simple #ShinyApp ๐Ÿ”ฎ

(it's here for you to try: bit.ly/shinyapp-test) Screenshot showing a ShinyApp with selection boxes left (to
What the ShinyApp does:

You have checkboxes on the left side that let you choose countries (it's the ISO3 abbreviation, so "RWA" stands for Rwanda) and, depending on what you selected, your #ShinyApp will show a (non-realistic) population size for each country in a new plot.
When looking at the code, it might be overwhelming at first - but if we think of it as the pseudo-code snippets that I tweeted earlier, things start falling into place ๐Ÿค“
But let's start from the beginning โญ

We'll load the essential packages first - we obviously need {shiny} ๐Ÿ“ฆ but I also load {dplyr} for data wrangling, {ggplot2} for visualization, and {overviewR} for the data (you can take any other data here). ###Build your first ShinyApp โœจ  library(shiny) # Shiny lib
In the next step, we load the toy data (toydata) from overviewR and now you're ready to go!

What you now see in code is how you can fill the UI ๐Ÿ‘ค and server ๐Ÿง  with content.
If you compare the pseudo code with the actual code, you'll see how similar they are. We define the title in "titlePanel()", add a "sidebarPanel()" (this is where the user selects what to see), and a "mainPanel()" (this is where the output lives). #---------------------------------------------------------# An image showing a pseudo UI ui <- fluidPage( titltePanel(&q
For the sidebarPanel, I picked checkboxes for the selection in the sidebar of the UI ๐Ÿ‘ค (but there are multiple other possibilities for more control widgets): shiny.rstudio.com/tutorial/writtโ€ฆ).
To build the connection between the server ๐Ÿง  and the UI ๐Ÿ‘ค later, we'll do one important thing: we give our selector a unique ID: "countries" (you can see it in the code, but more on this once we're talking about the server ๐Ÿง )
For the mainPanel, we want a plot, so we call "plotOutput("first_plot")". "first_plot" in the parentheses refers to the plot that we later build in the server ๐Ÿง . Think of it as another ID or cross-reference that allows the server ๐Ÿง  and the UI ๐Ÿ‘ค to speak to each other.
For the server ๐Ÿง , I added a #ggplot2 inside the renderPlot() function to generate the visualization ๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽจ

These render* calls are typical parts of the server ๐Ÿง . Just wrap them around your normal {ggplot2} calls (for instance). An image showing a pseudo server server <- function(input, o
And what you also see is that we store our visualization in "output$first_plot" ๐Ÿ‘ˆ this is where our "first_plot" is generated that we call later in the UI ๐Ÿ‘ค. And there's something else - otherwise, your selection in the UI wouldn't work.
If you look at the filter, you'll see that we filter for countries in "input$countries" ("dplyr::filter(ccode %in% input$countries)"). This is exactly the "countries" ID that we added to the UI ๐Ÿ‘ค previously.
And now the magic happens ๐Ÿง™๐Ÿปโ€โ™€๏ธ

We call "shinyApp (ui = ui, server = server)" and bring the server ๐Ÿง  and the UI ๐Ÿ‘ค together. #---------------------------------------------------------#
And here's how it "runs" in action! Just highlight the code and let it run - a new window with your first ShinyApp will open ๐Ÿ™Œ
(I wanted to capture the full window so that you get the intuition of what it looks like in practice. That's why it's probably a bit small - but the code remains the same as above โœจ )
It's a really simple app and can be further customized - if you want to copy-paste the code to play around with it yourself, it's all in this repository: bit.ly/repo-shinyapp
Some things that I learned when building ShinyApps:

โœจ Sketch your ShinyApp on paper (or tablet) with a pencil. This helps to understand what you want to get (and also what's probably missing). It's a bit like doing a design workshop with yourself.
โœจ Start simple. Trust me, your ShinyApp will get complicated soon enough ๐Ÿ˜„
โœจ ๐Ÿ“ฆ {echarts4r} is a package for making beautiful visualizations (echarts4r.john-coene.com)
โœจ If you're up for a production-ready ShinyApp, have a look at ๐Ÿ“ฆ {golem}: engineering-shiny.org/golem.html (and the #Golemverse: golemverse.org)
โœจ If you're not so much up for writing code, have a look at ๐Ÿ“ฆ {shinyuieditor} - it allows you to create a UI without coding rstudio.github.io/shinyuieditor/โ€ฆ
โœจ Deploying a ShinyApp on shinyapps.io is simple (if you don't have any data etc. restrictions) - just follow these steps: bit.ly/deploy-shiny
... and that all the talk about brains and bodies reminds me so much of Liv Moore ๐ŸงŸโ€โ™€๏ธ๐Ÿ’œ

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with We are R-Ladies

We are R-Ladies Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @WeAreRLadies

Sep 17
And in my last Twitter thread, I wanted to talk with you about some powerful approaches in #NLP and how we can use both #rstats and #python to unleash them ๐Ÿ’ช
One possible downside when using the bag of words approach described before is that you often cannot fully take the structure of the language into account (n-grams are one way, but they are often limited).
You also often need many data to successfully train your model - which can be time-consuming and labor intensive. An alternative is to use a pre-trained model. And here comes @Google's famous deep learning model: BERT.
Read 19 tweets
Sep 17
The curation week is almost over and I would like to thank everyone for joining the discussions this week! Itโ€™s been a blast ๐Ÿฅณ
If you enjoyed this week, feel free to reach out on Twitter (@cosima_meyer) or GitHub (github.com/cosimameyer/) โœจ
@cosima_meyer I feel very honored that I had the chance to talk with you about the things I enjoy doing and I cannot wait to learn more from the upcoming curators - the lineup looks amazing! ๐Ÿ’œ
@cosima_meyer If you missed a Twitter thread this week, head over to @pilizalde's amazing thread where she collected all of them (I love the GitHub emoji ๐Ÿ˜บ)

๐Ÿ‘‡
Read 21 tweets
Sep 16
๐Ÿ“ If you also keep thinking about brains and bodies, here is more of it to summarize the key points ๐Ÿค“ #rstats A visual summary of ShinyAp...
๐Ÿ—‚ And as announced at #rstudioconf2022, you can now also build ShinyApps in #python! @Rami_Krispin set up a great repository that shows you how to set up your ShinyApp in Python using #shinyelive: github.com/RamiKrispin/shโ€ฆ ๐Ÿ’ป
@Rami_Krispin ๐Ÿ“– If you're up for more input on ShinyApps, here's the bible of Shiny: mastering-shiny.org
Read 6 tweets
Sep 16
๐Ÿ’ก What is reactivity and what does it have to do with a carrier pigeon? ๐Ÿฆ

To better understand how a #ShinyApp works, it's good to understand what's behind reactivity. Infographic showing reactiv...
To describe it, I love the image of a carrier pigeon ๐Ÿฆ (I picked up this idea when reading a post by @StatGarrett - so all credits go to him and all errors are mine โœจ)
@StatGarrett What reactivity does is "a magic trick [that] creates the illusion that one thing is happening, when in fact something else is going on" (shiny.rstudio.com/articles/underโ€ฆ).
Read 9 tweets
Sep 16
Today, we'll discover how you can use the power of #rstats to create an interactive #shinyapp โœจ
๐Ÿ’ก What is a ShinyApp?

Shiny is a framework that allows you to create web applications - ShinyApps โ˜บ๏ธ You can use them for multiple purposes - to visualize data ๐ŸŽจ (for instance the Scottish Household Survey by @ViktErik, bit.ly/3TqZevY, ... Scottish Household Survey showing a visualization of data in
Read 8 tweets
Sep 15
While I touched the surface of what you can do with #Git today, itโ€™s an extremely powerful tool that has so much more to offer ๐Ÿคฉ

Here are some more resources, if you want to learn more about it:

๐Ÿ“– happygitwithr.com

๐Ÿ“– atlassian.com/git (my go-to resource)
And there are of course fantastic #rladies talking about using #Git:

๐Ÿ“บ @RLadiesBmore: (by @lisalendway)
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(