【问题标题】:R - Table too big to fit in console window?R - 表格太大而无法放入控制台窗口?
【发布时间】:2017-01-17 17:06:09
【问题描述】:

首先声明:我是一名 Stata 用户,试图完全“跳转”到 R(虽然很慢)。

当我看到其中一个根本不适合我的控制台尺寸时,我正在制作一些简单的交叉表。在 Stata 中,使用相同的数据和相同的变量,交叉表非常适合。然而,在 R 中,一切都变得非常混乱。

桌子是 10x10。下面是一个可重现的例子:

library(gmodels)
df  <- data.frame(id = 1:100, x1=sample(1:7, size=100,replace=TRUE), 
                  x2 = sample(0:10, size=100, replace=TRUE))

CrossTable(df$x1, df$x2, prop.r=TRUE, prop.t=TRUE, prop.c=TRUE)

上表不适合我的屏幕。我什至没有兴趣将它放入 LaTeX 文档中;我只是想探索那个交叉表。我对使用 CrossTable 很感兴趣,因为它在我看来是一个漂亮的表格,其中包含百分比(行和列)和边距中的总计。我不知道这是否是 CrossTable 的问题,或者是由于我的 R 安装如何显示/限制输出。我尝试在 Rmarkdown 中使用“options(widht=huge_number)”指定更大的空间,但这无济于事。

其他一些线程对我没有多大帮助。我找不到与我的问题直接相关的任何内容。线程示例:

How do I fit a very wide grid.table or tableGrob to fit on a pdf page?

Automatically adjust LaTeX table width to fit pdf using knitr and Rstudio

R-LaTeX Wide table

任何帮助将不胜感激。我也愿意学习其他产生类似输出的软件包。谢谢!

【问题讨论】:

  • 它只发生在 RStudio 的小窗口中。我只需要放大它,桌子就可以了。您是否尝试使用全屏终端运行代码?
  • 是的,这是我在发布之前尝试的第一件事。今天早上,当我重新开始工作时,生成带有放大控制台屏幕的表格就成功了……可能是某种“缓存”阻止了表格“重新调整大小”?

标签: r crosstab


【解决方案1】:

CrossTable 调用实际上创建了一个包含所有部分的列表对象。检查这些列表对象可能对检查很有用。

x<-CrossTable(df$x1, df$x2, prop.r=TRUE, prop.t=TRUE, prop.c=TRUE)
x$t
   y
x   0 1 2 3 4 5 6 7 8 9 10
  1 2 1 2 0 1 3 1 1 2 1  1
  2 2 1 1 2 1 2 1 2 1 2  0
  3 2 2 2 2 0 1 3 2 2 1  2
  4 1 2 1 1 1 2 2 1 2 0  0
  5 0 0 0 1 4 2 1 0 1 1  0
  6 0 1 2 0 0 1 0 1 0 1  5
  7 0 2 0 3 1 1 1 1 2 5  1

round(x$prop.row,3)
   y
x       0     1     2     3     4     5     6     7     8     9    10
  1 0.133 0.067 0.133 0.000 0.067 0.200 0.067 0.067 0.133 0.067 0.067
  2 0.133 0.067 0.067 0.133 0.067 0.133 0.067 0.133 0.067 0.133 0.000
  3 0.105 0.105 0.105 0.105 0.000 0.053 0.158 0.105 0.105 0.053 0.105
  4 0.077 0.154 0.077 0.077 0.077 0.154 0.154 0.077 0.154 0.000 0.000
  5 0.000 0.000 0.000 0.100 0.400 0.200 0.100 0.000 0.100 0.100 0.000
  6 0.000 0.091 0.182 0.000 0.000 0.091 0.000 0.091 0.000 0.091 0.455
  7 0.000 0.118 0.000 0.176 0.059 0.059 0.059 0.059 0.118 0.294 0.059

等...用于 prop.col 和 prop.tbl 变量。

【讨论】:

    【解决方案2】:

    查看以下主题: This 用于 Latex pdf 创建。它可能会帮助你。 为了进入终端,检查列,使用str(columns),或者你可以使用data.table包在终端窗口中查看数据框。否则,您可以逐步对其进行切片以查看数据框。 让我知道这是否有帮助。

    【讨论】:

    • 感谢@Amit 的评论。您建议的链接是 OP 中列出的链接之一。它在某种程度上很有见地,但它确实没有回答我的问题。我刚刚浏览了包data.table 帮助页面,看不到它对我有什么帮助。
    【解决方案3】:

    这是一种变通方法,但它可以让您看到您所说的交叉表。

    • 首先,在 RStudio IDE 中,打开一个新的 R Notebook。
    • 其次,运行下面的代码。 '''{r} ''' 在文档中运行 R 代码(请注意,这些是 3 个反引号而不是单引号,如果我以正确的方式编码,它不会正确显示)。

      '''{r}

      库(gmodels) df

      CT

      查看(CT)

      '''

    • 第三:当你得到/看到你的交叉表的输出时,它会像以前一样疯狂。在输出单元格的“右上角”,您可以找到 3 个选项“x”输出、“

    享受:)

    【讨论】:

    • 我认为这与 {as.data.frame(CrossTable(df$x1, df$x2, prop.r=TRUE, prop.t=TRUE, prop.c=TRUE )}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2018-03-25
    • 2011-09-09
    • 1970-01-01
    • 2014-03-29
    • 2011-03-18
    相关资源
    最近更新 更多