2015-12-30 2 views
3

Попытка взять эти идеи еще дальше:Блестящая реактивность с IncludeMarkdown?

Я хочу, чтобы включить реактивный уценки файл (*.Md) в mainPanel условно на входе к selectInput. Как мне это сделать?

Я пробовал варианты на renderText, renderPrint и используя eval внутри includeMarkdown. Пока ничего не работает.

EG.

### ui.R 

shinyUI(fluidPage( 
    sidebarLayout(
    sidebarPanel(
     selectInput("var1", 
        label= "Please Select option", 
        choices= c("option1", "option2", "option3"), 
        selected= "option1" 
    ), 

    mainPanel(
     h3("guide:") 
     includeMarkdown("md_file") 
    ) 
) 
)) 

### server.R 
shinyServer(function(input, output) { 

    output$md_file <- 
    if (input$var1 == "option1") { 
     renderPrint({"option1.Md"}) 
    } else if (input$var1 == "option2") { 
     renderPrint({"option2.Md"}) 
    } (input$var1 == "option3") { 
     renderPrint({"option3.Md"}) 
    } 
    }) 
}) 


R> shiny::runApp('C:/Shiny_demo') 

Прослушивание http://127.0.0.1:6421
Предупреждение в readLines (CON):
не может открыть файл 'md_file': Нет такого файла или каталога
Ошибка в readLines (CON): не может открыть соединение

ответ

2

Основываясь на обсуждении с Джо Ченгом в группе Shiny Google, ответьте на это сообщение:

В вашем пользовательском интерфейсе:

uiOutput("md_file") 

В вашем сервере:

output$md_file <- renderUI({ 
    file <- switch(input$var1, 
    option1 = "option1.Md", 
    option2 = "option2.Md", 
    option2 = "option3.Md", 
    stop("Unknown option") 
) 
    includeMarkdown(file) 
}) 

Спасибо, Джо!

Смежные вопросы