gpt4 book ai didi

javascript - 从 Shiny App 调用时如何在 Rmarkdown 中呈现表格和数学

转载 作者:太空狗 更新时间:2023-10-29 15:53:54 25 4
gpt4 key购买 nike

我有一个如下所示的 Rmarkdown 文件 (info.rmd):

---
title: "Information"
theme: yeti
date: "4/1/2017"
output: html_document
---


## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.


```{r echo = FALSE, results = 'asis'}
library(knitr)
kable(mtcars[1:5, ], caption = "A knitr kable.")
```

## Formulation

Here is where we formulate
$$\sum_{i=1}^n X_i$$

还有像这样调用 Rmarkdown 的 ShinyApp:

server.R

包含这个

  output$markdown <- renderUI({
HTML(markdown::markdownToHTML(knit('info.rmd', quiet = TRUE), fragment.only=TRUE))
})

ui.R

包含这个:

 fluidPage(uiOutput('markdown'))

但是生成的表格和数学怎么看起来像这样呢?

enter image description here

正确的做法是什么?


当在 Shiny 之外独立运行时,info.rmd 会正确生成表格:

enter image description here


我在 ui.R 中试过这个

 includeHTML("info.html")

正确显示文件 html,但阻止绘图和其他 tabPanel() 中的 react 性以工作。


更新

这是@Nice 解决后的新结果:

enter image description here

最佳答案

如果您使用 fragment.only,则不包含 CSS 和 JS,并且表格/方程式没有样式。

一种简单的方法是在 iframe 中包含带有 header 的完整 HTML,这样它就不会干扰应用的其余部分。

output$markdown <- renderUI({
tags$iframe(src='info.html',width="100%",frameBorder="0",height="1000px")
})

info.html 文件需要位于您应用的 www 文件夹中。您可以通过更改 tags$iframe 中的参数来调整 iframe 的宽度和高度。

您可以使用 CSS 更改 iframe 中主容器的宽度。如果将此添加到 info.rmd 文件中:

```{r results="asis",echo = FALSE}
cat("
<style>
.main-container.container-fluid {
max-width: 100%;
padding-left:0px;
}
</style>
")
```

关于javascript - 从 Shiny App 调用时如何在 Rmarkdown 中呈现表格和数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43158408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com