【问题标题】:Is there a way to display multiple tables in the RStudio Viewer?有没有办法在 RStudio 查看器中显示多个表格?
【发布时间】:2019-07-03 02:40:49
【问题描述】:

如果我使用summarytools 包中的ctable 函数运行以下交叉表代码:

library(summarytools)
data(mtcars)
varlist <- names(mtcars[,3:5])
crosstables <- list(NULL)
for (i in varlist){
  crosstables[[i]] <- ctable(mtcars[[i]], mtcars$cyl, prop = 'r', style="simple", method = "render", header=TRUE)
  view(crosstables[[i]])
  }

而不是在 RStudio 查看器中看到三个交叉表,只显示最后一个。如果我尝试显示所有三个表格:

view(crosstables)

我收到以下错误消息:

x must either be a summarytools object created with freq(), descr(), or a list of freq() / descr() objects created using by(), or a list of freq() objects created using lapply(). Support for by() used with ctable() may be available in future realeases.

有没有办法在同一个查看器窗口中堆叠所有三个表?也许是一种组合交叉表的 html 输出文件的方法?

【问题讨论】:

  • 这个 hack 不太理想,但我使用 Window 的截图工具将两个图并排放置。同样可以用于表格。

标签: r summarytools


【解决方案1】:

您可以将view 更改为print 并编织为html

代码相同:

library(summarytools)
data(mtcars)
varlist <- names(mtcars[,3:5])
crosstables <- list(NULL)
for (i in varlist){
  crosstables[[i]] <- ctable(mtcars[[i]], mtcars$cyl, prop = 'r', style="simple", method = "render", header=TRUE)
  print(crosstables[[i]])
  }

只有最后一行不同。然后使用 RStudio 的编织功能:

【讨论】:

  • @wisamb 您能否在答案中包含一些代码来演示这是如何完成的?
  • 感谢您发布代码 - 但是我在 RStudio 会话的工具栏上看不到“Knit HTML”按钮。除了knitr,我还需要安装一个单独的包吗?
  • “编织”按钮有一个下拉箭头,显示编织为 HTML、PDF 或 Word。当您使用该选项时,它将默认为“Knit HTML”。所以检查下拉箭头。无需安装其他任何东西。
【解决方案2】:

作为降价解决方案的替代方案,包的print 方法/view 函数有一个append 参数。因此,当您使用 file 参数并将第一个交叉表的输出直接输出到 html 文件时,您可以使用 append=TRUE 为另外两个使用相同的文件路径。

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 2021-09-01
    • 1970-01-01
    • 2017-10-13
    • 2019-12-20
    • 2015-08-26
    • 1970-01-01
    • 2016-11-28
    • 2016-02-12
    相关资源
    最近更新 更多