library(shiny) library(shinydashboard) library(rwunderground) library(measurements) set_api_key("API key") header <- dashboardHeader(title = 'Athens GA weather watch') sidebar <- dashboardSidebar() loc <- set_location(airport_code = 'AHN') weather <- conditions(loc) weather$tempC <- round(conv_unit(weather$temp,'F','C'),1) boxTemperatureF <- box(title='Fahrenheit', weather$temp) boxTemperatureC <- box(title='Celsius',weather$tempC) row1 <- fluidRow(boxTemperatureF, boxTemperatureC) body <- dashboardBody(row1) ui <- dashboardPage(header,sidebar,body) server <- function(input, output) {} shinyApp(ui, server)
library(shiny) library(shinydashboard) library(measurements) header <- dashboardHeader(title = 'Current weather') sidebar <- dashboardSidebar() boxCity <- box(selectInput('code', 'City:', choices = c('Atlanta' = 'ATL', 'Fairbanks' = 'FAI', 'New York' = 'JFK', 'Phoenix' = 'PHX', 'San Francisco' = 'SFO'), selected = 'ATL')) valueBoxC <- valueBox(textOutput('C'), width=3, subtitle = 'C', color= ('yellow')) valueBoxF <- valueBox(textOutput('F'), width=3, subtitle = 'F', color= ('yellow')) row1 <- fluidRow(boxCity) row2 <- fluidRow(valueBoxF, valueBoxC) body <- dashboardBody(row1,row2) ui <- dashboardPage(header,sidebar,body) server <- function(input, output) { output$text <- renderText({paste(input$City, ' weather watch')}) output$F <- renderText({conditions(set_location(airport_code = input$code))$temp}) output$C <- renderText({round(conv_unit(conditions(set_location(airport_code = input$code))$temp,"F","C"),1)}) } shinyApp(ui, server)
library(shiny) library(shinydashboard) library(rwunderground) header <- dashboardHeader(title = 'Current weather') sidebar <- dashboardSidebar() boxCity <- box(selectInput('code', 'City:', choices = c('Atlanta' = 'ATL', 'Fairbanks' = 'FAI', 'New York' = 'JFK', 'Phoenix' = 'PHX', 'San Francisco' = 'SFO'), selected = 'ATL')) #boxCondition <- box(title = 'Current conditions: ', textOutput('condition'), background = 'blue')ndition <- boxTime <- box(textOutput('time')) row1 <- fluidRow(boxCity) row2 <- fluidRow(valueBoxOutput("vboxF"), valueBoxOutput("vboxC")) body <- dashboardBody(row1,row2) ui <- dashboardPage(header,sidebar,body) server <- function(input, output) { output$vboxF <- renderValueBox({ t <- as.numeric(conditions(set_location(airport_code = input$code))$temp) if (t > 86) { valueBox(t, width = 3, subtitle = 'F', color = 'red') } else if (t < 50) { valueBox(t, width = 3, subtitle = 'F', color = 'blue') } else { valueBox(t, width = 3, subtitle = 'F', color = 'yellow') } }) output$vboxC <- renderValueBox({ t <- as.numeric( output$vboxC <- renderValueBox({ t <- as.numeric(round(conv_unit(conditions(set_location(airport_code = input$code))$temp,"F","C"),1)) if (t > 30) { valueBox(t, width = 3, subtitle = 'C', color = 'red') } else if (t < 10) { valueBox(t, width = 3, subtitle = 'C', color = 'blue') } else { valueBox(t, width = 3, subtitle = 'C', color = 'yellow') } }) ) if (t > 30) { valueBox(t, width = 3, subtitle = 'C', color = 'red') } else if (t < 10) { valueBox(t, width = 3, subtitle = 'C', color = 'blue') } else { valueBox(t, width = 3, subtitle = 'C', color = 'yellow') } }) } shinyApp(ui, server)
library(ggplot2) library(WDI) library(WDI) library(ggplot2) library(countrycode) # Use the WDIsearch function to get a list of GDP indicators indicatorMetaData <- WDIsearch("gdp") # Pull out indicator names indicatorNames <- indicatorMetaData[1:10,2] # Define a list of countries for which to pull data countries <- c("Australia") # Convert the country names to iso2c format used in the World Bank data iso2cNames <- countrycode(countries, "country.name", "iso2c") # Pull data for the first three indicators for 2011 wdiData <- WDI(iso2cNames, indicatorMetaData[1:3,1], start=2011, end=2011) header <- dashboardHeader(title = 'Australian GDP 2011') sidebar <- dashboardSidebar() infoGDP1 <- infoBox(title = indicatorNames[1], round(wdiData[1,4],2),width = 8) infoGDP2 <- infoBox(title = indicatorNames[2], round(wdiData[1,5],2),width = 8) infoGDP3 <- infoBox(title = indicatorNames[3], round(wdiData[1,6],2),width = 8) row1 <- fluidRow(infoGDP1) row2 <- fluidRow(infoGDP2) row3 <- fluidRow(infoGDP3) body <- dashboardBody(row1,row2,row3) ui <- dashboardPage(header,sidebar,body) server <- function(input, output) {} shinyApp(ui, server)
library(WDI) library(ggplot2) library(countrycode) library(shinydashboard) header <- dashboardHeader(title = 'Environmental data') side <- sidebarMenu(menuItem( "Reporting options", tabName = "dashboard", icon = icon("dashboard") )) pullType <- selectInput( 'countryCode', 'Country:', choices = c('China' = 'CN', 'India' = 'IN', 'United States' = 'US')) sidebar <- dashboardSidebar(sidebarMenu(side),pullType) w <- 8 info1 <- infoBox(title = textOutput('title1'), textOutput("wdiData1"), width = w, icon = icon("fire", lib = "glyphicon"), color='red') info2 <- infoBox(title = textOutput('title2'), textOutput("wdiData2"), width = w, icon = icon("tree-conifer", lib = "glyphicon"), color='green') info3 <- infoBox(title = textOutput('title3'), textOutput("wdiData3"), width = w, icon = icon("cloud", lib = "glyphicon"), color='orange') row1 <- fluidRow(info1) row2 <- fluidRow(info2) row3 <- fluidRow(info3) body <- dashboardBody(row1,row2,row3) ui <- dashboardPage(header,sidebar,body) server <- function(input, output) { output$wdiData1 <- renderText({ WDI(input$countryCode, indicator=c('EG.USE.ELEC.KH.PC'),start=2011, end=2011)[1,3] }) output$title1 <- renderText({ WDIsearch(string='EG.USE.ELEC.KH.PC',field='indicator')[2] }) output$wdiData2 <- renderText({ WDI(input$countryCode, indicator=c( 'AG.LND.FRST.ZS'),start=2011, end=2011)[1,3] }) output$title2 <- renderText({ WDIsearch(string='AG.LND.FRST.ZS',field='indicator')[2] }) output$wdiData3 <- renderText({ WDI(input$countryCode, indicator=c('EN.ATM.CO2E.PC'),start=2011, end=2011)[1,3] }) output$title3 <- renderText({ WDIsearch(string='EN.ATM.CO2E.PC',field='indicator')[2] }) } shinyApp(ui, server)
library(WDI) library(countrycode) library(shinydashboard) library header <- dashboardHeader(title = 'Environmental data') side <- sidebarMenu(menuItem( "Reporting options", tabName = "dashboard", icon = icon("dashboard") )) pullType <- selectInput( 'measure', 'Measure:', choices = c('Electricity consumption in kWh per capita)' = 'EG.USE.ELEC.KH.PC', 'Forest area as % of land area' = 'AG.LND.FRST.ZS', 'CO2 emissions in metric tons per capita' = 'EN.ATM.CO2E.PC')) sidebar <- dashboardSidebar(sidebarMenu(side),pullType) w <- 4 info1 <- infoBox(title = 'China', textOutput("wdiData1"), width = w, color='red', icon = icon("flag", lib = "glyphicon")) info2 <- infoBox(title = 'India', textOutput("wdiData2"), width = w, color = 'orange', icon = icon("flag", lib = "glyphicon")) info3 <- infoBox(title = 'USA', textOutput("wdiData3"), width = w, color = 'blue', icon = icon("flag", lib = "glyphicon")) row1 <- fluidRow(info1) row2 <- fluidRow(info2) row3 <- fluidRow(info3) body <- dashboardBody(row1,row2,row3) ui <- dashboardPage(header,sidebar,body) server <- function(input, output) { output$wdiData1 <- renderText({ round(WDI('CN', indicator=input$measure,start=2011, end=2011)[1,3],2) }) output$wdiData2 <- renderText({ round(WDI('IN', indicator=input$measure,start=2011, end=2011)[1,3],2) }) output$wdiData3 <- renderText({ round(WDI('US', indicator=input$measure,start=2011, end=2011)[1,3],2) }) } shinyApp(ui, server)
library(quantmod) library(shinydashboard) library(dygraphs) library(shiny) header <- dashboardHeader(title = 'Currency convertor') side <- sidebarMenu(menuItem( "Currencies", tabName = "dashboard", icon = icon("calculator") )) pullCurr1 <- selectInput( 'currency1', 'From:', choices = c('Australian dollar' = 'AUD', 'Chinese Yuan' = 'CNY', 'Euro' = 'EUR', 'Japanese Yen' = 'JPY', 'US dollar' = 'USD')) pullCurr2 <- selectInput( 'currency2', 'To:', choices = c('Australian dollar' = 'AUD', 'Chinese Yuan' = 'CNY', 'Euro' = 'EUR', 'Japanese Yen' = 'JPY', 'US dollar' = 'USD')) amt <- numericInput('amt', label = "Amount", 100) sidebar <- dashboardSidebar(sidebarMenu(side),pullCurr1, pullCurr2, amt) info1 <- infoBox(title = textOutput('Conversion'), textOutput("rate"), icon = icon("exchange"), color='red') info2 <- valueBox(textOutput('Amount'), h3(textOutput("amt")), color='yellow') row2 <- fluidRow(box(title='Market last 100 days', width=12, dygraphOutput("exchange"))) row1 <- fluidRow(info1,info2) body <- dashboardBody(row1,row2) ui <- dashboardPage(header,sidebar,body) server <- function(input, output){ output$rate <- renderText({ swap <- paste0(input$currency1,'/',input$currency2) get(getFX(swap,from=Sys.Date()))}) output$amt <- renderText({ swap <- paste0(input$currency1,'/',input$currency2) get(getFX(swap,from=Sys.Date()))*input$amt }) output$exchange <- renderDygraph({ swap <- paste0(input$currency1,'/',input$currency2) dygraph(get(getFX(swap,from=Sys.Date()-100,to=Sys.Date()))) }) } shinyApp(ui, server)
This page is part of the promotional and support
material for Data Management (open edition) by Richard T. Watson For questions and comments please contact the author |