2016-05-11 4 views
0

, поэтому я пытаюсь сделать приложение для расчета налогов. На боковой панели я использую tabsetPanel для отображения двух панелей с разными входами, относящихся к индивидуальным, а затем налоговым ставкам.Shiny/R: Выходы не отображаются

MainPanel также будет использовать tabsetPanel, где я планирую строить графики и т. Д. У меня есть кнопка обновления, которая, похоже, не работает.

ui.R 

выглядит так:

shinyUI(fluidPage(
titlePanel("flatTax"), 
sidebarLayout(
sidebarPanel(
    h1("Flat Tax Calculator"), 
    helpText("Input your information below and see how a flat tax could 
affect your tax bill."), 

    #Individual Specific Variables 
    tabsetPanel(
    tabPanel("You", 
    numericInput(inputId = "incomeNum", 
       label = "Your annual income:", 
       value = 0 
    ), 

    textInput(inputId = "testText", 
       label = "Test Input" 
      ), 
    ), 

    tabPanel("Tax Settings", 
    sliderInput(inputId = "basicIncome", 
       label = "Choose a monthly basic income", 
       value = 600, min = 0, max = 1200, step = 50 
    ), 

    sliderInput(inputId = "taxFree", 
       label = "Choose a tax free allowance", 
       value = 10000, min = 0, max = 20000, step = 250 
    ), 

    sliderInput(inputId = "flatIncomeTax", 
       label = "Choose a flat tax rate", 
       value = 50, min = 0, max = 100, step = 1 
    ), 

    sliderInput(inputId = "flatPropertyTax", 
       label = "Choose a land value tax rate", 
       value = 1, min = 0, max = 100, step = 1 
)), 

    # Action Button 
    actionButton(inputId = "updateButton", 
       label = "Update"), 
    plotOutput("text") 
) 
), 


mainPanel(
    tabsetPanel(
    tabPanel("Summary", 
     h3("Test Output", textOutput("test"), 
     h3("Your new income tax bill is:", textOutput("incomeFT")), 
     h3("Your new property tax bill is:", textOutput("propertyFT")), 
     textOutput("annualBasicIncome") 
     ) 
     ), 
    tabPanel("Graphs", 
      h3("Placeholder"), 
      h3("Holding the place"), 
      h3("Plaice holster") 
     ) 
    ) 
) 
) 
)) 


server.R 

выглядит так:

shinyServer(
function(input, output) { 


#action button stuff 
incomeFT <- eventReactive(input$updateButton, { 
    ((input$incomeNum-input$taxFree)/100*input$flatIncomeTax) 
}) 

output$incomeFT <- renderPrint({ 
    incomeFT() 
}) 

propertyFT <- eventReactive(input$updateButton, { 
    input$propertyNum/100*input$flatPropertyTax 
}) 

output$propertyFT <- renderPrint({ 
    propertyFT() 
})  

annualBasicIncome <- eventReactive(input$updateButton, { 
    switch(as.numeric(input$relStat), 
     return((input$basicIncome*12)+((input$basicIncome*12)*input$childNum)), 
     return((2*(input$basicIncome*12))+((input$basicIncome*12)*input$childNum)) 
) 
    }) 

output$annualBasicIncome <- renderPrint({ 
    annualBasicIncome() 
}) 

test <- eventReactive(input$updateButton, { 
    input$testText 
}) 

output$test <- renderText({ 
    test() 
}) 
}) 

без реактивности, кажется, работает, но кнопка делает ее менее отвлекающим использовать. Я попытался использовать verbatimTextOutput вместо textOutput, но серые полосы посылаются через основную панель, а не входы.

Помогите пожалуйста?

ответ

0

По какой-то причине actionButton не работает внутри tabsetPanel. Если вы выберете его (и внутри sidebarPanel), он будет работать. Я предлагаю вам попробовать использовать один actionButton для каждого tabPanel. Я не пробовал, но считаю, что он должен работать. Пожалуйста, попробуйте, дайте мне знать результаты.

Cheers.

+0

Справа снова! Спасибо чувак. – gizzard

Смежные вопросы