首页 > 解决方案 > 即使在更改值并按下提交按钮后,也无法在 R Shiny 应用程序中获得输出。需要进行哪些更改?

问题描述

嗨,我是 R Shiny 编码的新手。我在 MATLAB 上做了一个应用程序,现在尝试在 R 中复制。一般代码如下,运行应用程序时,主面板中没有输出,只有标题,请告诉所有错误。PS不要担心迭代循环我已经改变了一点。

应用程序议程:接受用户的输入;从 excel 文件中获取与输入相关的值;进行计算并显示最终答案。

library(shiny)
library(readxl)
dataTable <- read_excel("file.xlsx")

# Define UI for application
ui <- fluidPage(


    titlePanel(" App"),
    sidebarLayout(
        sidebarPanel(
            
    
    selectInput("a_name","A",choices = c('x','y','z'),width = '30%'),
    textInput("a_w","A  %",value=0,width = '30%'),
    selectInput("b_name","B",choices = c('1','2','3','4','5','6','7','8'),width = '30%'),
    textInput("b_w","B %",value=0,width = '30%'),
    selectInput("sys","System",choices = c('a','b','c'),width = '30%'),
    textInput("vol","Product",value=0,width = '30%'),
    textInput("area","Area",value=0,width = '30%'),
    numericInput("d","D",value = 0,min=0,max=50,step=1,width = '30%'),
    submitButton('Calculate')
    ),
    
    mainPanel(
    ("Output Number"),
    dataTableOutput('OutputNumber')
    )
    )
    
    
        )
        server <- function(input, output) {
            
            n_final <-reactive({
            
            y <- dataTable[,c('C1')]
            z <-which(y == input$b_name)
            m_b <- dataTable[z,c('C2')];
            m_a <- dataTable[z,c('C3')];
            l_p <- dataTable[z,c('C4')]
            a_m <- dataTable[z,c('C5')];
            w_f <- dataTable[z,c('C6')];
            
            # Basic Calculations to give idea
            b_u <- input$b_w/input$d; 
            a_u <- input$a_w/input$d;
            rand_num <- 0.0000001+(0.000001)*runif(1, 0, 1);
            loopCounter <- 0; # Fail safe to prevent infinite loop
            value = rand_num + b_u -a_u -0.99292;
            #Iteration
            while ((value >= 0.00001109) && (loopCounter<10000000))
            {
             b_u <- input$b_w/input$d; 
            a_u <- input$a_w/input$d;
            rand_num <- 0.0000001+(0.000001)*runif(1, 0, 1);
            value = rand_num-b_u -a_u +0.99292;
            need <- 0.82828*rand_num + 99.08


            }
            return(n_final)
            })
            output$Number <- renderDataTable(n_final)
             
            
        }
        shinyApp(server = server, ui = ui)
        

标签: rshiny

解决方案


推荐阅读