我正试着用R来生成报告,并且认为我已经决定只使用 pander ,在使用 knitr , Rmarkdown , pander 和 reports 的各种组合后感到困惑 .
我现在有两个文件:
'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文档中根本没有出现 .
那么:如何在不显示行名的情况下获取表格?
(这是我的第一篇文章,所以我希望它符合要求!)
EDIT: 这是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 回答
我是
pander
的作者,感谢你试一试,@ Jerubaal . 如果您也可以发布info
或者更确切地说是dput(info)
的结果,那将是非常棒的,这样我就可以重现您的步骤,但据我现在看到的解决方法是首先将info
的子集保存到新变量中,然后返回一个块中的新对象 .更多细节:
pander
suprressesrow.names
如果这些是微不足道的,就像从1
到行数的序列 . 如果返回data.frame
的子集,则返回一个不符合此基本计划的row.names
对象 . 但是如果你创建一个新的data.frame
,自动row.names
将从1
开始到nrow
.快速演示(请注意,无论如何,
pander
会自动在每个块上运行):Update :使用提供的
info
数据集进行演示