【问题标题】:3-d data to nicely formatted table (kable)3-d 数据到格式良好的表格 (kable)
【发布时间】:2018-05-07 01:21:07
【问题描述】:

我有一个问题,概括起来可能很有趣。如果您有本质上是三维的数据,但其中一个维度的长度仅为 2,则可以在表格中很好地显示此数据。这个问题的答案显示some examples of how to do that in latex。我认为这可能是呈现汇总统计数据的常见问题。

现在有很多很好的方法可以通过 knitr 和 kableExtra 在 R 中格式化表格,但我不知道如何优雅地处理这种特殊情况。这是一个简化的例子:

   library(dplyr)
   ms <- iris %>% 
   group_by(Species) %>%
   summarize(mean_petal_width=mean(Petal.Width),
   mean_sepal_width=mean(Sepal.Width))

   sds <- iris %>% 
   group_by(Species) %>%
   summarize(sd_petal_width=sd(Petal.Width),
   sd_sepal_width=sd(Sepal.Width))

   knitr::kable(ms)
   knitr::kable(sds)

有没有一种优雅的方法可以从这两个单独的数据帧中获取格式类似于 the answers to this question 的表格?

【问题讨论】:

    标签: r latex r-markdown knitr


    【解决方案1】:

    基地 R 来救援!基本 R 函数ftable 就是为此目的量身定制的。我相信“f”是“扁平化”。只需将两个 data.frames 组合在一起,可以称为半长格式,xtab-ulate 将它们组合成一个三维数组,然后ftable 将显示:

    最终游戏:

    ftable( aperm(tgrp, c(3,1,2)), row.vars=c('Species', 'stat') )
    #----------------                    
                        petal_width sepal_width
    Species    stat                            
    setosa     mean       0.2460000   3.4280000
               std_dev    0.1053856   0.3790644
    versicolor mean       1.3260000   2.7700000
               std_dev    0.1977527   0.3137983
    virginica  mean       2.0260000   2.9740000
               std_dev    0.2746501   0.3224966
    

    准备工作:

    首先分配相同的列名,以便它们可以“绑定”:

    library(dplyr)
        ms <- iris %>% 
        group_by(Species) %>%
        summarize(petal_width=mean(Petal.Width),
        sepal_width=mean(Sepal.Width))
    
        sds <- iris %>% 
        group_by(Species) %>%
        summarize(petal_width=sd(Petal.Width),
        sepal_width=sd(Sepal.Width))
    
    grouped <- rbind( cbind(stat="mean", ms), cbind(stat="std_dev", sds) )
    tgrp <- xtabs( cbind(petal_width, sepal_width) ~ stat+Species, grouped)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2010-10-09
      • 1970-01-01
      相关资源
      最近更新 更多