使用flextable包制作表格时出错

时间:2018-07-31 08:02:34

标签: r flextable

因此,在与记者见面之前,我制作了一个仅由文本组成的矩阵,然后将其制成可伸缩表格,最后将其添加到我的Word文档中。这样,我为文档创建了标题。示例:

Header <- matrix("",1,3)

Header[1] <- paste("bla bla") 
Header[2] <- paste("blu blu")  
Header[3] <- paste("ble ble")  

myheader <- FlexTable(data = Header,                                                                                   header.columns = F,
                      add.rownames = F,
                      header.cell.props = cellProperties( background.color = "white" ),
                      header.text.props = textProperties( color = "black",
                                                          font.size = 11),
                      body.text.props = textProperties( font.size = 11, 
                                                        font.weight = "bold"))

现在,当我尝试使用新功能将其转换为flextable时:

myheader <- flextable(Header) 

它说

  

“ flextable(Header)中的错误:is.data.frame(data)不是TRUE”

或通过:

myheader <- flextable(Header, col.keys = names(Header))

它说

  

“ flextable(Header,col.keys = names(Header))中的错误:     未使用的参数(col.keys = names(Header)“

我在做什么错? 先感谢您! 附言随意修改我的视觉演示(我仍然在这里尝试解决)。 我也刚刚注意到,我在数据表上遇到了同样的问题,所以肯定有我错过的事情。

1 个答案:

答案 0 :(得分:1)

您的Header对象是matrix

class(Header)
[1] "matrix"

您可以使用data.frame将其转换为as.data.frame()

library(flextable)
flextable(as.data.frame(Header))

flextable result

或者,您可以使用tableHTML来接受矩阵:

library(tableHTML)
Header %>% 
  tableHTML(rownames = FALSE,
            theme = "scientific")

这里的结果是:

tableHTML result