Я пытаюсь научиться создавать документы R Markdown, содержащие элементы Shiny.
В итоге у меня возникла проблема, заключающаяся в том, что синтаксис заголовка ##
не создает новую строку перед заголовком, вместо этого заголовок отображается прямо перед предыдущим элементом mainPanel
. Ниже показано полученное изображение:
и вот код, который генерирует ситуацию:
---
output: html_document
runtime: shiny
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r pressure, echo=FALSE}
mainPanel(plotOutput("plot"))
output$plot <- renderPlot({
plot(pressure)
})
```
## Next header
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
Что делать, чтобы заголовок начинался с новой строки?
mainPanel()
не должен быть сам по себе. Если вы посмотрите на документацию, она должна быть создана внутри sidebarLayout()
, где макет сам о себе позаботится.
Правильным было бы просто удалить mainPanel()
из вашего кода, и это решило бы проблему. Если вы использовали его, потому что хотите, чтобы график не занимал всю ширину, вы можете использовать для этого опцию фрагмента width
Rmd.
Еще одно решение, которое я не рекомендую, но которое также сработает, если вам действительно нужна панель, — правильно завершить панели, создав полный sidebarLayout()
:
sidebarLayout(
mainPanel = mainPanel(plotOutput("plot")),
sidebarPanel = "",
position = "right"
)
Использование
sidebarLayout()
действительно объясняет, почемуmainPanel()
не приводит к новой строке.