R减价中的网格布局

R减价中的网格布局,r,r-markdown,R,R Markdown,在rmarkdown中是否有一种干净的方法来平铺或创建某种类似表格的布局?例如,在RShiny中,您可以设置排序网格,然后放置元素,例如文本、表格、绘图等。。。在这些插槽中,以真正控制您的外观。如果降价不是最好的方式,我愿意以HTML、Word或PDF格式输出。作为一个例子,考虑这个文件: --- title: "Test File" output: html_document --- ## R Markdown How do put these side-by-side? ```{r t

在rmarkdown中是否有一种干净的方法来平铺或创建某种类似表格的布局?例如,在RShiny中,您可以设置排序网格,然后放置元素,例如文本、表格、绘图等。。。在这些插槽中,以真正控制您的外观。如果降价不是最好的方式,我愿意以HTML、Word或PDF格式输出。作为一个例子,考虑这个文件:

---
title: "Test File"
output: html_document
---

## R Markdown

How do put these side-by-side?

```{r text, echo=FALSE}
summary(cars)
```

```{r plot, echo=FALSE}
plot(speed ~ dist, cars)
```
我可以将摘要输出放在绘图输出旁边吗?如果我想走三条路:情节|总结|总结


我也愿意接受另一种格式/结构。我已经尝试过在Word中使用这种对齐方式,但很难做到。

这里有一个HTML输出的解决方案,它可以自动决定需要多少列。这种方法基于调整区块挂钩来改变降价输出。我们基本上只是执行字符串搜索和替换操作。我希望代码中的注释足够清晰:

MRE:


下面是一个HTML输出的变通方法,它自动决定需要多少列。这种方法基于调整区块挂钩来改变降价输出。我们基本上只是执行字符串搜索和替换操作。我希望代码中的注释足够清晰:

MRE:


我刚刚发现的另一种方法是使用gridExtra。您可以创建图形、文本对象、表格等,然后非常清晰地定义它们的结构和相对位置

优点:易于使用,对网格进行大量控制。使用ggplot2非常有效

缺点:现在一切都是图像,包括文本。在放入对象方面灵活性较低。据我所知,没有互动


因此,我不想将其用于HTML对象。有更好的办法。对于Word或PDF中相当简单、高度可控的空白使用,这可能是一种可行的方法。

我刚刚发现的另一种方法是使用gridExtra。您可以创建图形、文本对象、表格等,然后非常清晰地定义它们的结构和相对位置

优点:易于使用,对网格进行大量控制。使用ggplot2非常有效

缺点:现在一切都是图像,包括文本。在放入对象方面灵活性较低。据我所知,没有互动


因此,我不想将其用于HTML对象。有更好的办法。对于Word或PDF中相当简单、高度控制的空白使用,这可能是一种可行的方法。

我想列可能就是答案。我希望能有更多的控制,但我相信我能想出解决办法。输出的类型对这样的事情很重要:HTML输出的样式设计非常简单,因为可以使用CSS。PDF输出可能需要编写Latex或查找其他人编写Latex的模板,还有Word…我甚至不知道。它们都使用非常不同的机制从Rmarkdown编译。Shiny创建HTML文档,因此它可以使用CSS样式,我相信通常使用Bootstrap,这是一种基于网格的框架。如果您想要HTML输出,可以尝试类似的方法。你也可以调整。最后一个链接还有一个例子,就是在RMarkdown中直接添加带有引导类的HTML。我听说HTML可能是最简单的方法。我不知道实际生成的输出格式是什么。因此,如果一个比另一个更有利于这一点,那么我认为这是一条道路。我认为专栏可能就是答案。我希望能有更多的控制,但我相信我能想出解决办法。输出的类型对这样的事情很重要:HTML输出的样式设计非常简单,因为可以使用CSS。PDF输出可能需要编写Latex或查找其他人编写Latex的模板,还有Word…我甚至不知道。它们都使用非常不同的机制从Rmarkdown编译。Shiny创建HTML文档,因此它可以使用CSS样式,我相信通常使用Bootstrap,这是一种基于网格的框架。如果您想要HTML输出,可以尝试类似的方法。你也可以调整。最后一个链接还有一个例子,就是在RMarkdown中直接添加带有引导类的HTML。我听说HTML可能是最简单的方法。我不知道实际生成的输出格式是什么。因此,如果一个比另一个更有利于这一点,那么我认为这是一条道路。
---
title: "Test File"
output: html_document
---

## R Markdown

```{r, include = F}
library(stringi)
defChunkHook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
  x <- defChunkHook(x, options)
  if(!is.null(options$multi.col)) {
    x    <- gsub("(\n\`\`\`\n##.*?\`\`\`)", "<div>\\1\n</div>", x)  # wrap div around output chunks
    x    <- gsub("(<img.*?>)", "<div>\\1\n</div>", x)               # wrap div around plots
    ncol <- nrow(stri_locate_all(x, regex = "<div.*?>")[[1]])       # get the number of div elements created
    x    <- gsub("<div>", paste0("<div style=\"width:", 100/ncol,"%;\">"), x)  # add the width to the divs
    x    <- paste0("<div class=\"multi-col\" style=\"display: flex; justify-content: center; align-items: center;\">\n", x, "</div>")  # wrap the mother div around all of the output
  }
  x
})
```

```{r, echo = F, multi.col=T}
summary(cars)
plot(speed ~ dist, cars)
```

```{r, echo = F, multi.col=T}
summary(cars)
plot(speed ~ dist, cars)
plot(mpg ~ hp, mtcars)
```