【问题标题】:creating a two-way table with totals in R在 R 中创建一个包含总计的双向表
【发布时间】:2020-06-19 00:01:53
【问题描述】:

我想知道是否有一种简单的方法可以创建一个包含列和行总计的表?

smoke <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
    colnames(smoke) <- c("High","Low","Middle")
    rownames(smoke) <- c("current","former","never")
    smoke <- as.table(smoke)

我认为这会非常简单,但到目前为止我发现的解决方案似乎非常复杂,涉及lapplyrbind。然而,这似乎是一项微不足道的任务,必须有一些更简单的方法吗?

衍生结果:

> smoke
        High Low Middle TOTAL
current   51  43     22   116
former    92  28     21   141
never     68  22      9    99
TOTAL    211  93     52    51

【问题讨论】:

    标签: r dataframe data.table


    【解决方案1】:
    addmargins(smoke)
    

    addmargins 在 stats 包中。

    【讨论】:

      【解决方案2】:

      你可以从janitor 使用adorn_totals

      library(janitor)
      library(magrittr)
      
      smoke %>%
        as.data.frame.matrix() %>%
        tibble::rownames_to_column() %>%
        adorn_totals(name = 'TOTAL') %>%
        adorn_totals(name = 'TOTAL', where = 'col')
      
      # rowname High Low Middle TOTAL
      # current   51  43     22   116
      #  former   92  28     21   141
      #   never   68  22      9    99
      #   TOTAL  211  93     52   356
      

      【讨论】:

        猜你喜欢
        • 2021-10-07
        • 2021-01-22
        • 1970-01-01
        • 2020-09-02
        • 2014-02-01
        • 2019-07-22
        • 2021-07-16
        • 2016-07-18
        • 1970-01-01
        相关资源
        最近更新 更多