#r #shiny #r-markdown
Вопрос:
Я хочу создать таблицу содержимого для блестящего приложения.
Так что, возможно, такое блестящее приложение, как это:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(
menuItem("plot", tabName = "plot"),
menuItem("slider", tabName = "slider")
)
),
dashboardBody(
tabItems(
# First tab content
tabItem(
tabName = "plot",
fluidRow(
box(plotOutput("plot1", height = 250)),
),
fluidRow(verbatimTextOutput('longtext')),
fluidRow(
box(
title = "slider",
sliderInput("slider", "Number of observations:", 1, 100, 50)
)
)
)
)
)
)
server <- function(input, output) {
output$plot1 <- renderPlot({hist(rnorm(500)[seq_len(input$slider)])})
output$longtext <- renderText({paste0(rep('blah', 100), collapse = 'n')})
}
shinyApp(ui, server)
Но ведите себя больше так, как если бы вы запускали уценку R с включенной таблицей содержимого. Аналогично приведенному ниже коду, где при нажатии на раздел в таблице содержимого происходит переход к соответствующей части основного приложения.
---
title: "Untitled"
output:
html_document:
toc: true
toc_float: true
---
### section 1
`r paste0(rep('blah', 100), collapse = '<br/>')`
### section 2
section content
Ответ №1:
Возможное решение — использовать блестящий документ.
---
title: "Untitled"
runtime: shiny
output:
html_document:
toc: true
toc_float: true
---
### section 1
```{r, echo=FALSE}
sliderInput("slider", "Number of observations:", 1, 100, 50)
renderText({paste0(rep('blah', 100), collapse = 'n')})
```
### section 2
```{r, echo=FALSE}
renderPlot({hist(rnorm(500)[seq_len(input$slider)])})
```
Комментарии:
1. Я думаю, что было бы лучше либо использовать Rmarkdown с
runtime: shiny
пакетом Shinydashboard, либо использовать его вместе, а не вместе. Rmarkdown будет больше похож на динамический документ, в то время как shinydashboard больше похож на веб-приложение, оба они великолепны, я бы предложил начать с Rmarkdown и shiny, затем перейти на панель мониторинга и посмотреть, что работает лучше всего2. @DanielJachetta Единственная причина, по которой я использовал
shinydashboard
выше, — это показать, что я имел в виду. Возможно, в этом не было необходимости, и примера с уценкой R было достаточно.