我对闪亮的应用程序相对较新,并尝试创建一些基本决策规则,这些规则将根据定义的规则输出分类方案。我的平台和R版本是:
平台:x86_64_w64_mingw32 R版本:3.2.1(2015_06_18)
我收到错误:$ .shinyoutput中的错误:在尝试测试#Profile 1的输出时,不允许从shinyoutput对象读取对象,其中Fall LNF得分是< 20.5(即输入$ fluency2< 20.5使用renderPrint作为对象" a")。对于多个if语句,我有打印命令打印到R控制台,但无法弄清楚如何将信息发布到主面板"分组"在ui对象中定义。下面是我的ui,server和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)
答案 0 :(得分: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)