首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R-markdown为PDF创建表输出

使用R-markdown为PDF创建表输出
EN

Stack Overflow用户
提问于 2018-02-23 15:38:39
回答 2查看 17.8K关注 0票数 1

如何使用Rmarkdown中的kable函数为PDF报表创建格式化表格?以下是MWE:

代码语言:javascript
复制
library(knitr)

df <- data.frame(bucket = 1:11,
                 value = c(-0.8125594, -0.7590050, -0.7189301, -0.7188391, -0.5047816,
                           -0.3439579, -0.4376782, -0.1300217, 0.9145718, 2.1844290,
                           4.8374356))

print(kable(df))

输出:

代码语言:javascript
复制
| bucket|      value|
|------:|----------:|
|      1| -0.8125594|
|      2| -0.7590050|
|      3| -0.7189301|
|      4| -0.7188391|
|      5| -0.5047816|
|      6| -0.3439579|
|      7| -0.4376782|
|      8| -0.1300217|
|      9|  0.9145718|
|     10|  2.1844290|
|     11|  4.8374356|

我正在尝试将其格式化为PDF格式,具有良好的视觉效果,如附件中的图片:

EN

回答 2

Stack Overflow用户

发布于 2018-02-23 18:07:07

不需要用print包装kable函数。下面是一个演示它的基本RMarkdown文档:

代码语言:javascript
复制
---
title: "MWE"
output: pdf_document
---

```{r, message = FALSE}

库(Knitr)

df <- data.frame(存储桶= 1:11,

代码语言:javascript
复制
             value = c(-0.8125594, -0.7590050, -0.7189301, -0.7188391, -0.5047816,
代码语言:javascript
复制
                       -0.3439579, -0.4376782, -0.1300217, 0.9145718, 2.1844290,
代码语言:javascript
复制
                       4.8374356))

kable(df)

代码语言:javascript
复制

如果您需要进一步定制该表,我建议您查看kableExtra包:https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf

票数 6
EN

Stack Overflow用户

发布于 2018-02-23 16:00:15

您可以使用tableHTML创建灵活的HTML表格,这些表格可以使用CSS设置样式。

代码语言:javascript
复制
library(tableHTML)

首先,创建一个具有特定列宽、标题和'scientific'主题的tableHTML (该主题的默认文本对齐方式是'center',这就是为什么需要使用add_css_conditional_column()add_css_header()将其更改为'right' )。最后一件事是左对齐标题,并添加页边距:

代码语言:javascript
复制
df %>% 
  tableHTML(rownames = FALSE,
            widths = c(50, 100),
            theme = 'scientific',
            caption = 'Table 4: Bucket Table') %>% 
  add_css_conditional_column(columns = 1:2,
                             conditional = "between",
                            between = c(-Inf, Inf),
                            css = list(c("text-align"),
                                       c("right !important"))) %>% 
  add_css_header(css = list(c("text-align"),
                           c("right !important")),
                 headers = 1:2) %>% 
  add_css_caption(css = list(c("text-align", "margin-bottom"),
                             c("left", "10px")))

结果如下所示:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48943256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档