【问题标题】:Render Dynamic Equations in Shiny在 Shiny 中渲染动态方程
【发布时间】:2018-02-24 13:18:15
【问题描述】:

我有一个闪亮的文档,它应该解释一些数学并根据一些闪亮的输入计算结果。

如果我编写文档,则一切正常,直到我更改输入并显示 mathjax/latex 代码而不是正确呈现的方程式。

一个最小的工作示例是这个 (test.Rmd)

---
output: html_document
runtime: shiny
---

```{r,,echo=F}
library(shiny)
```

```{r,echo=F}
numericInput("a", "A", value = 100, min = 0, max = 10000)
numericInput("b", "B", value = 120, min = 0, max = 10000)
a <- reactive(input$a)
b <- reactive(input$b)

renderText(withMathJax({
  formula <- "$$
\\begin{split}
A &= %.0f \\\\
B &= %.0f 
\\end{split}
$$"
  text <- sprintf(formula, a(), b())

  return(text)
}))
```

我希望看到的是这个(我在更改输入之前得到的)

在我更改AB 后,我明白了

知道如何解决这个问题或我做错了什么吗?

【问题讨论】:

    标签: r shiny mathjax


    【解决方案1】:

    这是一个工作示例。 确保您在浏览器上看到此内容。

    library(shiny)
    
    ui <- list(
      numericInput("a", "A", value = 100, min = 0, max = 10000),
      numericInput("b", "B", value = 120, min = 0, max = 10000),
      uiOutput('out')
    )
    
    server <- function(input, output) 
    {
      a <- reactive(input$a)
      b <- reactive(input$b)
      output$out <- renderUI({
        formula <- "$$
          \\begin{split}
          A &= %.0f \\\\
          B &= %.0f 
          \\end{split}
          $$"
        text <- sprintf(formula, a(), b())
        withMathJax(  
          tags$p(text)
        )
      })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      【解决方案2】:

      有点晚了,但我只是想出了一个适用于 RMarkdown 的解决方案:


      输出:html_document 运行时:闪亮

      library(shiny)
      
      numericInput("a", "A", value = 100, min = 0, max = 10000)
      numericInput("b", "B", value = 120, min = 0, max = 10000)
      a <- reactive(input$a)
      b <- reactive(input$b)
      
      renderUI(
        {
        formula <- "$$
      \\begin{split}
      A &= %.0f \\\\
      B &= %.0f 
      \\end{split}
      $$"
        text <- sprintf(formula, a(), b())
        
        withMathJax(helpText(text))
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-04
        • 2020-10-09
        • 2019-04-21
        • 2019-04-28
        • 1970-01-01
        • 2019-04-12
        • 2023-03-03
        • 2018-08-07
        相关资源
        最近更新 更多