使用pander酿造报告时如何删除行名?

时间:2014-01-09 11:16:01

标签: r pander

我正试着用R来生成报告并且认为我已经决定只使用 pander ,之后将自己与 knitr , Rmarkdown pander 报告

我现在有两个文件:

'ReportIntro.brew',其中包含报告的结构

# My Report Title 
## Sample Information
#### <%=set.alignment('left') ; as.character(info[1,1])%>
<%=set.alignment('left') ; info[2:8,1:2]%>

'Report.R'创建报告所需的data.frame'info'

library(pander) ; library(xlsx)
info=read.xlsx(file="info.xlsx", sheetName="info", header=FALSE)
Pandoc.brew(file="ReportIntro.brew", output=tempfile(), convert="docx")  

这给了我第一个带有表格的Word文档。但是,它包含不需要的行名和列名。 我找到了一个关于generating tables with pander and knitr的博客,建议设置

row.names(info) <- NULL

但这没有效果。

如果我尝试使用

print(info[2:8,1:2], include.rownames=FALSE)

print(xtable(info[2:8,1:2]), type="html", include.rownames=FALSE)

正如另一篇关于removing row names using xtable的帖子所建议的那样,该表格在Word文档中根本没有出现。

那么:如何在不显示行名的情况下获取表格?

(这是我的第一篇文章,所以我希望它符合要求!)

编辑: 这是dput(info)的结果

> dput(info)
structure(list(X1 = c("School Information", "Name", "Type", "DfE number", 
"URN", "DfE link", "Dashboard Report", "Ofsted link", "Test Information", 
"Test Date", "Comments", "Analysis comments", "Sample Size", 
"Year group", "All", "11", "11"), X2 = c(NA, NA, "Primary, Academy, Prep, Middle etc", 
NA, "Enter school URN here", "http://www.education.gov.uk/", 
"http://dashboard.ofsted.gov.uk/", "http://www.ofsted.gov.uk", 
NA, NA, NA, NA, NA, "Set", "All", "top", "middle"), X3 = c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "M", "408", "165", 
"243"), X4 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, "F", "402", "145", "257"), X5 = c(NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Total", "810", "310", "500")), .Names = c("X1", 
"X2", "X3", "X4", "X5"), row.names = c(NA, 17L), class = "data.frame")

1 个答案:

答案 0 :(得分:7)

我是pander的作者,感谢你试试看,@ Jerubaal。如果您也可以发布info或更确切地说dput(info)的结果,那将是非常棒的,以便我可以重现您的步骤,但据我现在看到的解决方法是首先保存该子集info进入一个新变量,然后将该新对象返回到一个块中。

更多详细信息:pander如果这些是微不足道的话,请{@ 1}},例如从row.names到行数的序列。如果您返回1的子集,则会返回不符合此基本计划的data.frame对象。但是,如果您创建新的row.names,自动data.frame将从row.names开始到1

快速演示(请注意,nrow会自动在每个块上运行):

pander

使用提供的> library(pander) > pander(iris[2:3, 1:3]) --------------------------------------------------- &nbsp; Sepal.Length Sepal.Width Petal.Length ------- -------------- ------------- -------------- **2** 4.9 3 1.4 **3** 4.7 3.2 1.3 --------------------------------------------------- > x <- iris[2:3, 1:3] > pander(x) --------------------------------------------------- &nbsp; Sepal.Length Sepal.Width Petal.Length ------- -------------- ------------- -------------- **2** 4.9 3 1.4 **3** 4.7 3.2 1.3 --------------------------------------------------- > row.names(x) <- NULL > pander(x) ------------------------------------------- Sepal.Length Sepal.Width Petal.Length -------------- ------------- -------------- 4.9 3 1.4 4.7 3.2 1.3 ------------------------------------------- 数据集

更新:demo

info