首页 文章

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

提问于
浏览
3

我正试着用R来生成报告,并且认为我已经决定只使用 pander ,在使用 knitrRmarkdownpanderreports 的各种组合后感到困惑 .

我现在有两个文件:

'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 回答

  • 7

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

    更多细节: pander suprresses 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      
    -------------------------------------------
    

    Update :使用提供的 info 数据集进行演示

    > x <- info[2:8,1:2]
    > pander(x)
    
    --------------------------------------------------------
    &nbsp;         X1                      X2               
    ------- ---------------- -------------------------------
     **2**        Name                                      
    
     **3**        Type           Primary, Academy, Prep,    
                                       Middle etc           
    
     **4**     DfE number                                   
    
     **5**        URN             Enter school URN here     
    
     **6**      DfE link      http://www.education.gov.uk/  
    
     **7**  Dashboard Report http://dashboard.ofsted.gov.uk/
    
     **8**    Ofsted link       http://www.ofsted.gov.uk    
    --------------------------------------------------------
    
    > row.names(x) <- NULL
    > pander(x)
    
    ------------------------------------------------
           X1                      X2               
    ---------------- -------------------------------
          Name                                      
    
          Type           Primary, Academy, Prep,    
                               Middle etc           
    
       DfE number                                   
    
          URN             Enter school URN here     
    
        DfE link      http://www.education.gov.uk/  
    
    Dashboard Report http://dashboard.ofsted.gov.uk/
    
      Ofsted link       http://www.ofsted.gov.uk    
    ------------------------------------------------
    

相关问题