如何从 R 中的 str() 函数生成“漂亮”的输出

Kar*_*agg 0 formatting r

我有一个中等大小的数据集,为 1000 行 x 81 列。我想使用 的输出str(),但我想以“更漂亮”的方式呈现它。我尝试过这样的事情:

df %>% str() %>% kableExtra::kbl() %>% kableExtra::kable_minimal()
Run Code Online (Sandbox Code Playgroud)

tbl_summary(as.data.frame(str(df)))
Run Code Online (Sandbox Code Playgroud)

但两者都不起作用。我没有str()与任何特定的套餐结婚或结婚,但这就是我想要的总结。

最后,这旨在生成一个 HTML 文件,但我希望它也能处理 PDF 输出。

关于如何做到这一点有什么想法吗?

Tar*_*Jae 5

更新二: 在此输入图像描述 利用这个要点可以实现这一点devtools::source_gist('4a0a5ab9fe7e1cf3be0e')

<devtools::source_gist('4a0a5ab9fe7e1cf3be0e')>

  print(strtable(iris, factor.values=as.integer), na.print='') %>% 
    kable() %>% 
    htmlTable()
Run Code Online (Sandbox Code Playgroud)

更新一: 你可以扩展:

data.frame(variable = names(iris),
           class = sapply(iris, typeof),
           levels = sapply(iris, class),
           first_values = sapply(iris, function(x) paste0(head(x),  collapse = ", ")),
           levels_values = sapply(iris, function(x) paste0(unique(x), collapse =", ")),
           row.names = NULL) %>% 
  kable() %>% 
  htmlTable()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

第一个答案: 使用数据集是这样的iris

library(knitr)
library(magrittr)
library(htmlTable)

data.frame(variable = names(iris),
           classe = sapply(iris, typeof),
           first_values = sapply(iris, function(x) paste0(head(x),  collapse = ", ")),
           row.names = NULL) %>% 
  kable() %>% 
  htmlTable()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述