相关疑难解决方法(0)

在以编程方式生成的 Rmarkdown 中“打印”HTML 小部件

我正在尝试以编程方式生成一些 Rmarkdown,其中一个部分包含一个 HTML 小部件。如果它们在我的函数中位于最后,那么它们的输出就很好。但是,如果我将它们包装在 a 中,print这样我就可以在它们后面放置其他内容,就像对绘图所做的那样,它们不会产生任何输出。

也许这与处理打印的方式有关,knitr我不确定。但是有谁知道如何让 HTML 小部件表现得像以编程方式生成的 Rmarkdown 中的绘图一样?

示例.Rmd

---
title: "R Notebook"
output:
  html_document:
    df_print: paged
---

```{r}
ex_plot <- ggplot2::ggplot(iris, ggplot2::aes(Sepal.Length,Sepal.Width)) + 
    ggplot2::geom_point()

gen_rmarkdown_widget_last <- function() {
    cat("# Head 1\n\n")
    DT::datatable(iris)
}

gen_rmarkdown_plots <- function() {
    cat("# Head 1\n\n")
    print(ex_plot)
    cat("# Head 2\n\n")
}

gen_rmarkdown_widgets <- function() {
    cat("# Head 1\n\n")
    print(DT::datatable(iris))

    # tried loading from file
    # tmp <- tempfile()
    # htmlwidgets::saveWidget(DT::datatable(iris), tmp)
    # knitr::include_url(tmp)
    
    # tried a different widget …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown htmlwidgets

7
推荐指数
1
解决办法
1072
查看次数

如何自动化 Rmds 中的嵌套部分,包括文本、地图和表格

我找到了几个例子(如何使用 R 提取 SQL 文件的内容使用循环在 rmarkdown 中生成文本部分,使用 R在 Rmarkdown自动生成预格式化文本),但在我的情况下没有一个适用于嵌套部分,包括数字. 预期输出:

在此处输入图片说明

看来,我需要某种方法来处理包含的代码块(例如cat("```{r, fig.width=8.4, fig.height=7}\n") ... cat("```\n")正确处理,但我找不到方法。

编辑:我在这里找到了这个,但仍然无法使它工作

kexpand <- function(chunkname, fig.width, fig.height) {
  cat(knitr::knit(text = knitr::knit_expand(text = 
     sprintf("```{r %s, fig.width=%s, fig.height=%s}\n.chunk_code\n", 
             chunkname, fig.width, fig.height))))
}
Run Code Online (Sandbox Code Playgroud)

然后在块中:

  .chunk_code <- leaflet() %>%
    addTiles() %>%
    addProviderTiles(providers$OpenStreetMap, group = "OSM") %>%
    addProviderTiles(providers$Stamen.TonerLite, group = "Toner Lite") %>%
    addLayersControl(baseGroups = c("OSM", "Toner Lite")) %>%
    addCircleMarkers(lat = 47, lng = 9, popup = ranges[i]) …
Run Code Online (Sandbox Code Playgroud)

r knitr leaflet r-markdown

5
推荐指数
1
解决办法
523
查看次数

以编程方式在 Markdown 中创建选项卡和绘图

我正在尝试在我的rmd内部创建动态数量的选项卡,其中包含一些内容。
这个没用。
像这样的东西:

---
title: "1"
output: html_document
---

```{r }
library(highcharter)
library(tidyverse)
iris %>% 
      dplyr::group_split(Species) %>% 
      purrr::map(.,~{
        # create tabset for each group 
        ..1 %>% 
          hchart("scatter", hcaes(x = Sepal.Length, y = Sepal.Width))
        })
```
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown purrr r-highcharter

4
推荐指数
1
解决办法
378
查看次数

标签 统计

knitr ×3

r ×3

r-markdown ×3

htmlwidgets ×1

leaflet ×1

purrr ×1

r-highcharter ×1