Гистограмма для R блестящей, используя множественный выбор ввода от пользователя - PullRequest
0 голосов
/ 24 сентября 2019

Annual_data.xlsx Поэтому мне нужно создать блестящее веб-приложение, в котором на основе выбора фильтров мне нужен конкретный график.

На данный момент мне нужно создать панельграфик, основанный на выборе страны, года и группы сверстников (множественный выбор) от пользователя, и подсвеченная панель сущностей должна быть выделена красным (или другим цветом).

Например: скажем, я выбираю Австралию какстрана и 2017 год как год, а затем выбраны группы пиров X, Y, Z, A, B, C, а также выделенная страна А. Затем мы подгруппируем эти столбцы из нашего основного фрейма данных из упомянутого фильтра, а затем изэто подмножество мне нужно для создания гистограммы для этих выбранных групп пиров и их столбца рыночной капитализации.Таким образом, ось X должна быть равноправной группой (группой компаний), а ось Y представляет собой значения рыночной капитализации.

Я не могу сгенерировать гистограмму.Вы можете помочь?

Я прилагаю коды и фрейм данных в этой теме

ui.r

#install.packages("shinyWidgets")
library(shiny)
library(shinydashboard)
#library(shinyWidgets)

source("functions (2).R")

fluidPage(

   tags$style(type="text/css",
         ".shiny-output-error { visibility: hidden; }",
         ".shiny-output-error:before { visibility: hidden; }"
   ),
   #useShinydashboard(),

   titlePanel(div(tags$img(src = 'bain.PNG', height= 80, width= 
   100),style= "position:absolute;left:1.5em;top:60px;"),windowTitle = 
   "FS_insurance"),
   titlePanel(HTML('<div style= "background-color:#cc2500"><font face = 
   "Times New Roman" color="white"><center><h2><strong>FS: 
    Insurance</strong></h2></center></font></div>'), windowTitle = 
   "FS:Insurance"),


   fluidRow(
   column(4, offset = 8,sidebarLayout(position = "right", 
   sidebarPanel(uiOutput("tab"),width = 3), mainPanel("") ))#id="sidebar"
     ),



    tabsetPanel(type = "tab", 
          tabPanel("Financials by companies",fluid="TRUE", sidebarLayout(
            sidebarPanel(
              selectInput("Country","Select a country:",
                          choices = 
    c("Global",sort(unique(peer_group$Country_Bain))),selected = 
    "Global"),
              selectInput("year", "Choose a Year:",
                          choices = sort(unique(peer_group$Year))),
              selectizeInput("peer", "Choose peer group:",
                          choices = 
    sort(unique(peer_group$Company_Name_Bain)),multiple= TRUE),
              selectizeInput("highlighted_entity", "Choose an entity to 
     highlight:",
                          choices = 
    sort(unique(peer_group$Company_Name_Bain))),
              selectizeInput("cur","Choose a Currency",
                          choices = sort(unique(peer_group$Currency))),
              selectInput("metric", "Choose a Metric: ",
                          choices = sort(c('GWP','NWP','NEP','Admin. 
    Expense', 'Acquisition Cost','UW Result','Net investment 
    income','Operating Income','Net Income','Total Assets','Total 
    Liabilities','Total Equity','Market Capitalization')),selected = 
   "Market Capitalization"),
              selectInput("comp","Do you wish to compare with any 
              function?",
                          choices = c("Financials Over Time","Financials 
                                     by company over time", "Financial 
                                     and KPIs by company over time","No 
                                     comparison"),selected = "No 
                                     comparison"),
                        conditionalPanel(
                                       condition = "input.comp=='No 
                                       comparison'",
                                      helpText("No comparison was 
                                      requested.")),

                        actionButton("submit","SUBMIT",icon("paper- 
                                    plane"),
                         style="color: #fff; background-color: #337ab7; 
                                 border-color: #2e6da4"),
                  width = 3),

            mainPanel(
            #uiOutput("sample"),

            # uiOutput("plotUI"),
            # uiOutput("tableUI"),
            # uiOutput("eqnUI"),
            # uiOutput("eqn2UI"),

            fluidRow(
              column(width = 6,
                     div(
                       style = "position:relative",
                       plotOutput("plot1")
                     )
                     )
            )

            )) )


     )  

     )

 functions2.r

   peer_group<- read_excel("Annual_Data.xlsx", sheet = 1)

     Market_capitalization <- 
     cbind(peer_group$Company_Name_Bain,peer_group$Country_Bain,
      peer_group$Year,peer_group$Market_cap)
     colnames(Market_capitalization)<- 
     c('Company_Name','Country','Year','Market_Capitalization')
     Market_capitalization<-as.data.frame(Market_capitalization)

    server.r

    shinyServer(function(input, output, session) {
    #Login portion
    url <- a("LOGOUT", 
    href="https://simulator.shinyapps.io/Ontario_PPC/__logout__/")
    HTML('<center>url</center>')
    output$tab <- renderUI({
    tagList("", url)
    })
    observe({
      if (input$Country=='Global') {
      updateSelectInput(session, "highlighted_entity", choices = 
      sort(unique(peer_group[peer_group$Year == input$year, 
      ]$Company_Name_Bain)))
      }
     else{
  updateSelectInput(session, "highlighted_entity", choices = 
  sort(unique(peer_group[peer_group$Country_Bain == input$Country & 
  peer_group$Year == input$year, ]$Company_Name_Bain)))
   }})
   observe({
   if (input$Country=='Global') {
     updateSelectInput(session, "peer", choices = 
     sort(unique(peer_group[peer_group$Year == input$year, 
     ]$Company_Name_Bain)))
     }
    else{
    updateSelectInput(session, "peer", choices = so 
    rt(unique(peer_group[peer_group$Country_Bain == input$Country & 
    peer_group$Year == input$year, ]$Company_Name_Bain)))
     }})
    observe({
    if (input$Country=='Global') {
    updateSelectInput(session, "cur", choices = 
    sort(unique(peer_group[peer_group$Year == input$year, ]$Currency)))
    }
     else{
   updateSelectInput(session, "cur", choices = 
   sort(unique(peer_group[peer_group$Country_Bain == input$Country & 
   peer_group$Year == input$year, ]$Currency)))
   }})
  eventReactive(input$submit,{
  mc<- 
     Market_capitalization[Market_capitalization$Company_Name==input$peer 
     & Market_capitalization$Year == input$year, c(1,4)]
   })

   output$plot1 = renderPlot({
 ggplot(mc, aes(x=Company_Name, y=Market_Capitalization)) + 
 geom_bar(stat="identity") + 
   labs(x="Percentage", y="Proportion")

  } )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...