В процессе создания некоторых реактивных выражений с Shiny in R и с некоторой помощью сообщества я могу получить реактивные результаты с помощью текста. Я заинтересован в передаче цифр, которые соответствуют тексту через профили. В приведенном ниже примере у меня есть вход «myImage» в mainPanel в ui. На стороне сервера я пытаюсь вызвать naomi.png для определенного условного оператора, который соответствует профилю 3. Идея состоит в том, чтобы иметь один .png, связанный с каждым #Profile X, который вызывается на стороне сервера, учитывая профиль объекта ». Любые указатели/стартеры будут оценены.Передача реактивных фигур в Shiny
ui<-(fluidPage(
titlePanel("Diagnostic Elementary Reading fluency Profile (DERP) App"),
sidebarLayout(
sidebarPanel(
helpText("Enter Fluency Scores"),
sliderInput(inputId="fluency1", label="Fall FSF",value=25,min=0,max=50),
sliderInput(inputId="fluency2", label="Fall LNF",value=25,min=0,max=50)
),
mainPanel(img(src="myImage",height=300,width=400),
h1(textOutput("stuff")),align="center"))
)
)
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()
})
output$myImage<-renderImage({
if((input$fluency1>27) & ((input$fluency2>23))) {
return(list(
src = "www/naomi.png",
contentType = "image/png",
alt = "naomi!"))}
})
}
shinyApp(server=server,ui=ui)
Я признаю, что я просто прикрываю его здесь, и у меня не было возможности попробовать это. Не можете ли вы создать реактивную функцию, которая возвращает строку (например, «www/naomi.png») на основе ряда условных выражений или операторов? – Adrian
Насколько я понимаю, вы хотите отобразить существующие файлы png или хотите создать png на лету с помощью renderImage()? –
Я хотел бы показать 3 отдельных файла png, которые уже существуют; один из которых связан с каждым профилем. –