Ввод вызова в блестящей для группы по функции - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь сделать приложение с блеском.Принцип должен быть простым: показывать одну таблицу для каждого ввода.Вот мой кодПриложение показывает сумму для базы данных enitre, но я не хочу этого.

ui <- fluidPage(
  titlePanel("Casco Monthly"),
  sidebarLayout(
    sidebarPanel(
      h2(strong("Shiny App"),style = "color:blue"),
      img(src = "groupama.jpg", height = 100, width = 200),
      selectInput("select", h3("Categorii"), 
                  choices = list("CLIENT_TYPE" = "CLIENT_TYPE", "Grupare.Leasing" = "Grupare.Leasing",
                                 "AGENT_TYPE" = "AGENT_TYPE", "Grupare.vehicul" = "Grupare.vehicul",
                                  "Grupare.vechime"="Grupare.vechime"),
                  selected = "CLIENT_TYPE"),
      selectInput("select2",label = "Client Type",
                  choices = c ("NONE","Categorie_client"),
                  selected = "NONE")),

    mainPanel(
      h1(strong("CASCO 3003")),
    mainPanel(tableOutput("table1")))
  )
)


server <- function(input, output) {


  aggregated <- reactive({
    DATA %>%
      group_by("3003"=input$select) %>%
      summarise("Earned Premium" = sum(EP), "Exposure" = sum(EXP),"GWP" = sum(GWP_RON), "Incurred" = sum(INC),"NO of events" = sum(Nr.evenim))
  })

  output$table1 <- renderTable({
    aggregated()

})
}
shinyApp(ui = ui, server = server)

Например:

CLIENT_TYPE EP  EXP GWP INC NR.EVENIM
PF      10  1   1000    30  2
PF      20  4   2000    50  1
PF      50  5   1500    60  2
PJ      20  3   2500    20  1
PJ      40  7   2000    10  1
PJ      30  8   500     20  2
PJ      20  9   1500    20  1

Я хотел получить что-то вроде этого:

CLIENT_TYPE Earnend Premium Exposure    GWP    Incurred  No of events
PF                 80          10       4500      140           5
PJ                110          27       6500       70           5

Но на самом деле приложение показывает общий итог:

3003          Earnend Premium   Exposure    GWP     Incurred     No of events
CLIENT_TYPE        190             37      11000      210            10

Я надеюсь, что smbd понимает, что я пытаюсь сказать.

Спасибо.

1 Ответ

0 голосов
/ 01 февраля 2019

Когда вы использовали input$select, это строка (input$select = "CLIENT_TYPE").

Поэтому вам нужно использовать функцию group_by_() вместо функции group_by().Эта функция поймет, что строку следует рассматривать как переменную data.frame.

Дополнительная информация здесь: dplyr: в чем разница между функциями group_by и group_by_?

aggregated <- reactive({
  DATA %>%
    group_by_(input$select) %>%
    summarise(  [...] )
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...