R中的汇总列总计[重复]

Posted

技术标签:

【中文标题】R中的汇总列总计[重复]【英文标题】:Aggregating column totals in R [duplicate] 【发布时间】:2021-10-03 11:26:26 【问题描述】:

假设我有一个如下所示的数据框:

variable1 <- c(1,1,1,0,1,0)
variable2 <- c(0,0,0,1,1,0)
variable3 <- c(1,0,1,0,1,1)

df <- data.frame(variable1, variable2, variable3)

获得如下所示的数据帧输出的最简单方法是什么:

   Variable     Total
   Variable1     4
   Variable2     2
   Variable3     3

colsums 有点像让我到达那里,但使用此方法不会将变量名称作为合法列输出。

【问题讨论】:

总结和调整。或者旋转然后总结。 【参考方案1】:
library(dplyr)
library(tidyr)
df %>% 
    pivot_longer(everything()) %>% 
    group_by(name) %>% 
    summarise(Total = sum(value))
# A tibble: 3 × 2
  name      Total
  <chr>     <dbl>
1 variable1     4
2 variable2     2
3 variable3     4

【讨论】:

这是我尝试的第一个答案,它奏效了。谢谢!【参考方案2】:

这可能是另一种选择:

df %>%
  tibble::rownames_to_column(var = "id") %>%
  janitor::adorn_totals()

    id variable1 variable2 variable3
     1         1         0         1
     2         1         0         0
     3         1         0         1
     4         0         1         0
     5         1         1         1
     6         0         0         1
 Total         4         2         4

【讨论】:

清洁工在日常使用中多次前来救援【参考方案3】:

你可以试试这个。

variable1 <- c(1,1,1,0,1,0)
variable2 <- c(0,0,0,1,1,0)
variable3 <- c(1,0,1,0,1,1)

df <- data.frame(variable1, variable2, variable3)
> data.frame(Total= colSums(df))
          Total
variable1   4
variable2   2
variable3   4

【讨论】:

【参考方案4】:
## data frame
variable1 <- c(1,1,1,0,1,0)
variable2 <- c(0,0,0,1,1,0)
variable3 <- c(1,0,1,0,1,1)

df <- data.frame(variable1, variable2, variable3)
df

##using dplyr Library
library(dplyr)
new_df = df %>% summarise(across(variable1:variable3,sum)) # sum of ones in each column
t(new_df) # transpose new_df to get desired pattern

【讨论】:

欢迎 Sakshi 加入 SO!不鼓励一次又一次地为每个变量输入sum。在这些情况下使用dplyr::across。 :) @AnilGoyal 感谢您提供信息。我已经进行了编辑。【参考方案5】:

使用stack/colSums

stack(colSums(df))[2:1]
        ind values
1 variable1      4
2 variable2      2
3 variable3      4

【讨论】:

【参考方案6】:

还有一种方法可以

library(tidyverse)

df %>%
  summarise(across(everything(), sum)) %>%
  pivot_longer(everything())

#> # A tibble: 3 x 2
#>   name      value
#>   <chr>     <dbl>
#> 1 variable1     4
#> 2 variable2     2
#> 3 variable3     4

由reprex package (v2.0.0) 于 2021 年 7 月 29 日创建

【讨论】:

以上是关于R中的汇总列总计[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 DAX 中的累计总计和百分比?

Excel:从某行开始汇总列值的公式或函数

R:dplyr 有条件地汇总并重新编码列中的值

MySQL按月汇总并运行总计[重复]

根据R中的年份和ID进行汇总

如何汇总 MongoDB 中的总和以获得总计数?