2016-09-19 72 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)