我有一个中等大小的数据集,为 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 输出。
关于如何做到这一点有什么想法吗?
更新二:
利用这个要点可以实现这一点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)