R,通过dfSummary生成漂亮的图表

8

我在使用summarytools包时遇到了问题。这里有一个教程:https://cran.r-project.org/web/packages/summarytools/vignettes/Introduction.html,其中有漂亮的数据图表: enter image description here 我的问题是,我的代码只生成了文本图形。这是我在markdown中用来生成图表的代码块:

```{r summary, results='markup'}
library(summarytools)
my_data <- ...
dfSummary(my_data)
```

很不幸,它生成了像这样的内容: enter image description here 如何使用summarytools生成漂亮的报告呢? 或者你有更好的工具吗?(生成图表、平均值、标准差等)
我找到了正确的语法来生成图表:
print(dfSummary(baseline_train), method = 'render')

结果看起来像这样:在这里输入图片描述


使用 dput 传输数据而非图片。 - NelsonGon
从您提供的文档中可以看到:“也可以在Rmarkdown文档中使用dfSummary()。在下一个示例中,请注意,由于rmarkdown兼容性问题,直方图不会显示。”;语法应为dfSummary(my_data, plain.ascii = FALSE, style = "grid")以显示HTML表格(不包括直方图)。 - Maurits Evers
@MauritsEvers 我尝试了这个语法,结果仍然是一样的。 - CezarySzulc
1
@NelsonGon 关于数据,我们可以尝试使用ggplot2中的钻石数据集。 - CezarySzulc
@Cezary.Sz 你需要使用 results = 'asis' 而不是 results = 'markup',请参见我下面的答案。 - Maurits Evers
2个回答

8

这方面的小更新:

  • 始终使用knitr块选项results='asis',就像之前某位评论所指出的那样。
  • 可以使用print()生成包括png图形的摘要:

    print(dfSummary(iris), method = "render")


  • 从0.9.0版本开始(仅在2019年2月之后才在GitHub上提供),markdown摘要也将包括提供png图形,只要您指定以下参数:

    • plain.ascii = FALSE
    • style = "grid"
    • 临时png的物理位置(tmp.img.dir

      dfSummary(iris, plain.ascii = FALSE, style = "grid", tmp.img.dir = "/tmp")

其他提示

  • 在两种情况下,您(很可能)需要使用dfSummary()graph.magnif参数调整图形的大小(尝试值介于.75.85之间)。
  • 排除一两列以避免过于宽泛的摘要:
    dfSummary(iris, [...], varnumbers = FALSE, valid.col = FALSE)

能否将结果以 MS Excel 表格的形式呈现? - NCC1701
函数生成的表格是一个数据框,因此您可以尝试使用其中一个能够导出到Excel的众多软件包之一(例如xlsx)。但是PNG图形将会丢失,格式很可能需要手动调整。 - Dominic Comtois

2

您需要在代码块中使用results = 'asis'。这是一个最小可重现的示例:

---
title: "Untitled"
output: html_document
---

```{r, results='asis'}
library(summarytools)
dfSummary(iris, plain.ascii = FALSE, style = "grid")
```

生成

输入图像描述


你生成了文本图。我不需要它。我需要图形。 - CezarySzulc
1
@Cezary.Sz 请再次阅读我的评论(以及小品文)。后者非常清楚地说明了在RMarkdown文档中使用dfSummary时不会生成直方图。此外,上面的表格不是纯文本(就像您的示例一样),而是一个HTML表格。 - Maurits Evers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接