Sam Lee
Sam Lee

Reputation: 1

When I knit a flextable to html there is no output with the table

The table prints nicely in markdown but is not present in the knitted html file. I noticed that it is classified as a list but don't know how to change it to an acceptable file type. The knitted output is not formatted as a table. I appreciate the help.

library("crosstable") #important package crosstable() function
library('dplyr')
library("flextable")

tbl1 =  crosstable(mtcars2, c(1), by = 2) %>%
  as_flextable(keep_id=FALSE)
  print(tbl1)

Upvotes: 0

Views: 840

Answers (1)

akrun
akrun

Reputation: 887098

According to ?print.flextable

Note also that a print method is used when flextable are used within R markdown documents. See knit_print.flextable().

Therefore, if we want to print in Rmarkdown, either use knitr::knit_print or remove the print as the ?knit_print.flextable documentation shows

You should not call this method directly. This function is used by the knitr package to automatically display a flextable in an "R Markdown" document from a chunk.

---
title: "Testing"
author: "akrun"
date: "09/12/2021"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r, echo = FALSE}
suppressPackageStartupMessages(library("crosstable")) #important package crosstable() function
suppressPackageStartupMessages(library('dplyr'))
suppressPackageStartupMessages(library("flextable"))

tbl1 =  crosstable(mtcars2, c(1), by = 2) %>%
    as_flextable(keep_id=FALSE)
 # either use knit_print or remove the print wrapper
 #knitr::knit_print(tbl1)
  tbl1   
```

-output

enter image description here

Upvotes: 1

Related Questions