gpt4 book ai didi

r - 简单的手动 RMarkdown 表格,在 HTML、PDF 和 DOCX 中看起来不错

转载 作者:行者123 更新时间:2023-12-02 02:52:04 24 4
gpt4 key购买 nike

如何在 RMarkdown 中手动简单地格式化表格,使其在转换为 HTML(使用 knit 和 markdown 包)、PDF(使用 pandoc 和 miktex)和 docx(使用 pandoc)时看起来不错?

我希望能够在 RMarkdown 中编写小表格,这些表格不是 R 函数的结果,在我最常使用的三种格式中看起来不错。到目前为止,我已经找到了一种在 3 种格式中的 2 种中看起来不错的格式,3/3 可能吗?

一个。在 Knit HTML 中看起来不错,但在 PDF 或 docx 中效果不佳

<table>
<tr>
<td>Eggs</td>
<td>Ham</td>
</tr>
<tr>
<td>Basil</td>
<td>Tomato</td>
</tr>
</table>

两个。这个在 Knit HTML 后看起来不错,但在 PDF 或 docx 中效果不佳

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
三。这个在 Knit HTML 后看起来不太好,但在 PDF 和 docx 中却很好(迄今为止最好的选择)

V1         Tweedledee       Tweedledum
-------- -------------- ----------------
Age 14 14
Height 3'2" 3'2"
Politics Conservative Conservative
Religion "New Age" Syrian Orthodox
--------- -------------- ----------------

四。在 Knit HTML 并制作 PDF 和 docx(获胜者!)之后,这看起来不错,但不是我想要的手动格式。

```{r table1, echo=FALSE, message=FALSE, warnings=FALSE, results='asis'}
require(pander)
panderOptions('table.split.table', Inf)
set.caption("Data on cars")
pander(mtcars, style = 'rmarkdown')
```

这就是我制作 PDF 和 docx 文件的方式:

filen <- "table" # name of my RMarkdown file without suffix
knit(paste0(filen,".Rmd"))

# make PDF
system(paste0("pandoc -s ", paste0(filen,".md"), " -t latex -o ", paste0(filen,".pdf"), " --highlight-style=tango -S"))

# make docx
system(paste0("pandoc -s ", paste0(filen,".md"), " -o ", paste0(filen,".docx"), " --highlight-style=tango -S"))

最佳答案

受到 daroczig 评论的启发,特别是 pander 转换为 pandoc 管道语法的线索,我仔细查看了 pander 文档,发现了对 cat 的引用。经过一番实验,我找到了获胜者:

```{r table2, echo=FALSE, message=FALSE, warnings=FALSE, results='asis'}
tabl <- "
| Tables | Are | Cool |
|---------------|:-------------:|------:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
"
cat(tabl) # output the table in a format good for HTML/PDF/docx conversion
```

在我的测试中,这会生成 HTML、PDF 和 docx 格式的统一美观的表格。现在我要在其他一些问题上给 daroczig 点赞,以感谢他让我找到了解决方案。

如果您需要为表格添加标题...,那么您需要采取一些不同的做法。请注意,标题仅在 PDF 中可见,在 HTML 中不可见:

```{r table-simple, echo=FALSE, message=FALSE, warnings=FALSE, results='asis'}
require(pander)
panderOptions('table.split.table', Inf)
set.caption("My great data")
my.data <- " # replace the text below with your table data
Tables | Are | Cool
col 3 is | right-aligned | $1600
col 2 is | centered | $12
zebra stripes | are neat | $1"
df <- read.delim(textConnection(my.data),header=FALSE,sep="|",strip.white=TRUE,stringsAsFactors=FALSE)
names(df) <- unname(as.list(df[1,])) # put headers on
df <- df[-1,] # remove first row
row.names(df)<-NULL
pander(df, style = 'rmarkdown')
```

关于r - 简单的手动 RMarkdown 表格,在 HTML、PDF 和 DOCX 中看起来不错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19997242/

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