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")
} )