'R markdown - printing datatable from inside the function

I have the followin markdown:

---
title: "My report"
output: html_document
---

```{r setup, include=FALSE}
library(DT)

my_func <- function(x) {
  #DT::datatable(x)
  print(DT::datatable(x))
  nrow(x)
}
```

```{r}
x <- my_func(mtcars)
print(x)
```

I want to display a DT from inside the function, but this function performs some calculations that I'm interested in the output of. So far it doesn't display the table. How can I force markdown to generate a table without returning it?



Solution 1:[1]

What about something like this:

---
title: "My report"
output: html_document
---

```{r setup, include=FALSE}
library(DT)

my_func <- function(x) {
  res <- list(dt = DT::datatable(x), 
              nr = nrow(x))
  class(res) <- "myfun"
  invisible(res)
}
```

```{r}
x <- my_func(mtcars)
x$nr
```


```{r}
x$dt
```

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 DaveArmstrong