2016-09-19 71 views
0

我對閃亮的應用程序比較新,並試圖創建一些基本的決策規則,根據定義的規則輸出分類方案。我的平臺和R版本是:閃亮的應用程序創建 - 將結果傳遞給表;從閃亮讀取對象不允許

平臺:x86_64_w64_mingw32 [R版本:3.2.1(2015_06_18)

我收到的錯誤:在$ .shinyoutput:從嘗試時shinyoutput對象不允許閱讀對象測試#Profile 1的輸出,其中Fall LNF分數爲< 20.5(即,使用對象「a」的renderPrint輸入$ fluency2 < 20.5)。對於多個if語句,我將打印命令打印到R控制檯,但無法弄清楚如何將信息發佈到ui對象中定義的mainPanel「分組」中。以下是我的UI,服務器和ShinyApp命令的腳本。任何幫助是極大的讚賞。

ui<-(fluidPage(titlePanel("testapp"), 
      sliderInput(inputId="fluency1", label="Fall FSF",value=25,min=0,max=200), 
      sliderInput(inputId="fluency2", label="Fall LNF",value=25,min=0,max=200), 
      mainPanel(h5("Groupings"), 
        textOutput("stuff")))) 


server<-function(input,output) {observe({ 
#PROFILE 1 
if ((input$fluency2<20.5)) { 
    #print("Profile 1") 
    a<-renderPrint(output$stuff({"Profile 1"})) 
    a() 
} 
if((input$fluency1<12) & ((input$fluency2>20)) & (input$fluency2<23)) { 
    print("Profile 1") 
} 
if((input$fluency1<9) & ((input$fluency2>21)) & (input$fluency2<25)) { 
    print("Profile 1") 
} 

#PROFILE 2 
if ((input$fluency1>11)) { 
    print("Profile 2") 
} 
if(((input$fluency1>8) & (input$fluency1<28)) & ((input$fluency2>22) & (input$fluency2<25))) { 
    print("Profile 2") 
} 
if((input$fluency1<28) & ((input$fluency2>24))) { 
    print("Profile 2") 
} 

#PROFILE 3 
if((input$fluency1>27) & ((input$fluency2>23))) { 
    print("Profile 3") 
}})} 


shinyApp(server=server,ui=ui) 

回答

1

這有幫助嗎?

ui<-(fluidPage(titlePanel("testapp"), 
        sliderInput(inputId="fluency1", label="Fall FSF",value=25,min=0,max=200), 
        sliderInput(inputId="fluency2", label="Fall LNF",value=25,min=0,max=200), 
        mainPanel(h5("Groupings"), 
          textOutput("stuff")))) 


    server<-function(input,output) { 

      profile <- reactive({ 
        if ((input$fluency2<20.5)) { 
          tmp <- "Profile 1" 
        } 
        if((input$fluency1<12) & ((input$fluency2>20)) & (input$fluency2<23)) { 
          tmp <- "Profile 1" 
        } 
        if((input$fluency1<9) & ((input$fluency2>21)) & (input$fluency2<25)) { 
          tmp <- "Profile 1" 
        } 

        #PROFILE 2 
        if ((input$fluency1>11)) { 
          tmp <- "Profile 2" 
        } 
        if(((input$fluency1>8) & (input$fluency1<28)) & ((input$fluency2>22) & (input$fluency2<25))) { 
          tmp <- "Profile 2" 
        } 
        if((input$fluency1<28) & ((input$fluency2>24))) { 
          tmp <- "Profile 2" 
        } 

        #PROFILE 3 
        if((input$fluency1>27) & ((input$fluency2>23))) { 
          tmp <- "Profile 3" 
        } 
        tmp 

      }) 
      output$stuff <- renderText({ 
        profile() 
      }) 
    } 


    shinyApp(server=server,ui=ui)