【问题标题】:R inline code not executing in RMarkdown only when generating HTML through javascript仅当通过 javascript 生成 HTML 时,R 内联代码才在 RMarkdown 中执行
【发布时间】:2020-04-24 12:00:38
【问题描述】:

我目前正在构建一个 RMarkdown Flexdashboard 并通过 javascript 生成 HTML 代码模板。当我生成我的 HTML 时,我的内联 R 似乎不起作用。代码如下。

```{js, class.source="vis1", results='asis'}
for(i = 1; i < 2; i++){
    $('<p id="vis">`r {1 + 1;}`</p>').insertAfter(".vis1");
}
```

我也尝试了以下方法,但无济于事。

```{js, class.source="vis1", results='asis'}
for(i = 1; i < 2; i++){
    $('<div id="vis">```\n {r} 1 + 1 \n```</div>').insertAfter(".vis1");
}
```

这是 "test: 2"

* 我开始认为这可能是由于设置 results='asis' *

【问题讨论】:

    标签: r r-markdown knitr flexdashboard


    【解决方案1】:

    设置 i 为 0 否则只会运行一次

    for(i = 0; i < 2; i++){
        $('<p id="vis">`r {1 + 1;}`</p>').insertAfter(".vis1");
    }
    

    【讨论】:

    • 谢谢,但这只是为了测试目的,内联 R 问题可以在第一次迭代中识别出来
    • 可以添加html结构吗?您要在“.vis1”中还是在之后插入“p”?
    • 在 Rmd ```{js, class.source="vis1"}`` 中创建了一个
      并且工作正常。只是

      标记中的内联 R 代码不起作用。

    【解决方案2】:

    您不能在代码块中包含内联 R 代码。在您的情况下,您不能在 js 代码块中包含内联 R 代码。您可以直接使用&lt;script&gt; 标签,例如,

    <script>
    alert("`r 1 + 1`");
    </script>
    

    【讨论】:

      猜你喜欢
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2018-12-20
      • 2015-12-14
      • 2020-09-05
      相关资源
      最近更新 更多