我正在使用knitr并pander在markdown文件中创建一个表.我正在使用内部的Pandoc将降价文件转换为PDF.
这段代码:
library(knitr)
```{r myTable, echo=FALSE, message=FALSE, results='asis', comment=""}
library(pander)
pandoc.table(head(iris))
```
Run Code Online (Sandbox Code Playgroud)
然后在R中运行此函数:
knitsPDF <- function(name) {
knit(paste0(name, ".Rmd"), encoding = "utf-8")
callformat <-"pandoc -V geometry:margin=1in %s.md -o %s.pdf"
system(sprintf(callformat, name, name))
}
knitsPDF(name) # insert file name of .Rmd file
Run Code Online (Sandbox Code Playgroud)
在PDF文件中生成此表:

我怎样才能1.减少表格中列的宽度?2.减小表的字体大小?
我正在玩Tal的介绍,在现实世界的情况下尽可能少地产生单词表.(请参阅那里可重现的例子 - 谢谢,Tal!)在实际应用中,表格要宽,以便在面向纵向的页面上打印,但您可能不想拆分它们.
很抱歉,如果我在pandoc或pander文档中忽略了这一点,但在从R写入Word .docx文件时如何控制页面方向(纵向/横向)?
我可能应该加上我开始使用knitr + markdown,我还不熟悉LaTex语法.但是我在尝试完成我的工作时尽可能多地接受.
我是新来的,但我在 R 上花了几个小时。我正在使用 R 包 Drake 与 knitr 的组合。\n但是我的 Rmarkdown 文件有错误。我有一个与德雷克示例类似的结构( https://github.com/ropensci/drake)类似的结构,我在其中加载数据,制作图表,然后绘制统计分析的图表和汇总表(使用 R 包 kableextra) 。
\n当我选择 .tex 文件时,一切正常,我的 Rmarkdown 文件上有以下几行
\n output: latex_document\n\n tables: true\n graphics: yes \nRun Code Online (Sandbox Code Playgroud)\n和德雷克计划
\nreport = rmarkdown::render(\nknitr_in("Reports/report.Rmd"),\noutput_file = "report.tex")\nRun Code Online (Sandbox Code Playgroud)\n但是当我想要一个已编译的 pdf 文件作为输出,其中 rmarkdown 标头包含以下几行:
\noutput:\n pdf_document: \n latex_engine: xelatex\n\ntables: true\ngraphics: yes\nRun Code Online (Sandbox Code Playgroud)\n和德雷克
\nreport = rmarkdown::render(\nknitr_in("Reports/report.Rmd"),\noutput_format = "pdf_document",\noutput_file = "report.pdf")\nRun Code Online (Sandbox Code Playgroud)\n我收到一条错误消息:
\n`! Undefined control sequence.\n<template> ...\\hskip 1sp\\d@llarbegin \\columncolor \n [HTML]{BBBBBB}\\ignorespaces \nl.178 \\em{Predictors} & \\em\n {Coefficients} …Run Code Online (Sandbox Code Playgroud) 我知道这是一个相当古老的问题,之前已经讨论过,但我无法按预期工作.
我有一个降价的文件,我想用knitr和pander生产用两位小数,如0.12,3.60,14.00,或163.21与一致的数字格式的.docx报告都内嵌和块输出.我已阅读此主题如何避免在每个\ Sexpr {}中使用round()?建议pander可以自动执行此操作.但是,它似乎对我不起作用.请让我知道我在这里缺少什么.
剧本:
```{r, echo=FALSE}
library(knitr)
opts_chunk$set(echo = FALSE, message = FALSE, results = 'asis')
```
```{r}
require(pander)
panderOptions('digits' , 2) #this should do the trick, right?
```
Test
=====
Let's produce some test stats:
```{r}
model1 = lm(weight~feed, chickwts)
anova.m1 = anova(model1)
pander(anova.m1)
pander(coef(summary(model1)))
```
In-line R codes: "Type of food affects body mass of the chicks
(F~`r anova.m1$Df[1]`,`r anova.m1$Df[2]`~ = `r anova.m1$F[1]`, p = `r anova.m1$Pr[1]`)." …Run Code Online (Sandbox Code Playgroud) 在RStudio中使用knitr,在for循环中,pander不会产生任何(或正确的)html输出.这是一个最小的情况,作为Rmd输入文件.
---
title: "Untitled"
output: html_document
---
Testing why pander doesn't work in for loop
```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.width=7, fig.height=5, echo=FALSE, warning=FALSE,
message=FALSE)
```
```{r}
library(pander)
r <- 1:10
print("pander at top level")
pander(summary(r)) # works
print("pander in for loop")
for (i in 1:2) pander(summary(r)) #does not work (nothing in output)
for (i in 1:2) print(pander(summary(r))) #does not work (code in output)
for (i in 1:2) print(summary(r)) # works
```
Run Code Online (Sandbox Code Playgroud)
对于其他(更有趣的)"摘要"对象,结果是相同的,例如lm拟合的摘要.对于来自CRAN的pander 0.5.2观察到相同的行为,并且还从github加载0.5.3.
RStudio v 0.99.467.
> sessionInfo()
R version 3.2.0 …Run Code Online (Sandbox Code Playgroud) 我目前正在切换到pander我的大部分knitr-markdown格式,因为它提供了如此强大的pandoc支持.我不满意的一件事是默认的中心对齐.营销人员可能会喜欢它,但对于技术报告来说这是一个恐怖.
使用的最佳选择Hmisc是默认使用左对齐文本和日期,右对齐所有类型的数字.
是否有一种简单的方法可以全局设置pander?
library(pander)
pander(data.frame(
name = letters[1:3],
size = 1:3,
we.have.dates = Sys.Date() - 1:3
))
Run Code Online (Sandbox Code Playgroud) 我正在使用knit::kable和打印频率表pander::pandoc,并且通常这适用于HTML/Word/LaTeX输出.但有时我想在最终产品中保留尺寸名称.不幸的是,pander并knitr转化为降价时,删除这些.
# create a simple table
tab <- table(mtcars$gear, mtcars$carb)
# add dimension names
names(dimnames(tab)) <- c("gear", "carb")
Run Code Online (Sandbox Code Playgroud)
这会创建一个表:
carb
gear 1 2 3 4 6 8
3 3 4 3 5 0 0
4 4 4 0 4 0 0
5 0 2 0 1 1 1
Run Code Online (Sandbox Code Playgroud)
但是现在,如果我们打印,例如,kable:
> kable(tab)
| | 1| 2| 3| 4| 6| 8|
|:--|--:|--:|--:|--:|--:|--:|
|3 | 3| 4| 3| 5| 0| 0|
|4 | 4| 4| …Run Code Online (Sandbox Code Playgroud) 我希望表格在一列中有项目符号并具有特定的表格宽度(以便在呈现为 PDF 时放置在一页上)。
如何通过rmarkdown使用众多软件包之一来实现这一目标?
到目前为止我尝试过的和拥有的:
---
output: pdf_document
---
```{r, include = FALSE}
df <- data.frame(col1 = "Some really long text here. I mean some reeeeeaaly loooong text. So long, it should be wrapped. Really.",
col2 = "* bullet point 1\n * bullet point 2", col3 = "Yes, there is still another column.")
```
# Attempt 1: kableExtra
```{r, echo = FALSE, warning = FALSE}
library(kableExtra)
df1 <- df
df1$col2 <- linebreak(df1$col2)
knitr::kable(df1, escape = FALSE) %>% column_spec(1, …Run Code Online (Sandbox Code Playgroud) 由 pander 或 pandoc.table 生成的表格的标题和内容由水平线分隔。有没有办法在内容的特定位置之间添加新的水平线?例如:
任何帮助是极大的赞赏。谢谢!