我正在尝试在Shiny应用程序中包含一个"反应性"的.Rmd文件。它将总结用户的选择和可能出现的各种情况。不知何故,我发现在.Rmd文件中包含shiny是可行的documented,但无法包含knit .Rmd并将输出包含在shiny应用程序中。
我发现这些很难复制,所以这里是我使用Rstudio的hello world示例进行尝试的结果。这是在Chromium中的应用程序原样:
当我运行它时,现在会得到这个(屏幕截图足迹相同): 我猜测在编织文档中有一些CSS或其他东西会搞砸事情,但我不确定。我可以强制宽度更宽,但主面板仍然保持居中。
我尝试过使用
我发现这些很难复制,所以这里是我使用Rstudio的hello world示例进行尝试的结果。这是在Chromium中的应用程序原样:
接下来,我在 ui.R
中添加了一个 uiOutput
元素:
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot"),
uiOutput("mark")
)
我还在server.R
中添加了一个相应的输出,取自这种类似问题的内容:
output$mark <- renderUI({
HTML(markdown::markdownToHTML(knit("./test.Rmd", quiet = TRUE)))
})
test.Rmd
的内容如下:
## something to print
```{r}
head(mtcars, input$bins)
```
当我运行它时,现在会得到这个(屏幕截图足迹相同): 我猜测在编织文档中有一些CSS或其他东西会搞砸事情,但我不确定。我可以强制宽度更宽,但主面板仍然保持居中。
我尝试过使用
includeMarkdown
,但无法根据input
进行更新。请记住,这是最终的希望 - 我需要一些能够根据更改的input
值重新生成显示内容的东西。我意识到我可以做一些renderText
之类的事情,但Rmarkdown
格式非常方便,因为这是一种指南。我可以编写一些文档,然后向用户展示他们选择了什么以及结果如何。
看起来很接近...我只是想不出为什么页面会出问题。
我还尝试了像style = "width: 1200px"
或style = "width: 100%"
之类的东西,但无法将sidebarPanel
和mainPanel
之间的比例恢复正常。
理想情况下,输出应该与原始输出完全相同,但编织结果应该显示在图的当前位置下面。
test.Rmd
文件,然后我看到了.main-container { max-width: 940px; }
。这非常有效。现在我知道我在寻找什么,我甚至能够控制只有一个输出:例如div [id = blah] {max-width: 100% !important;}
。真诚感谢您快速的调查。 - Hendy