создайте таблицу уценки контента R в shiny

#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 было достаточно.