首页 > 解决方案 > 在 R 中聚合列总计

问题描述

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

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有点让我到了那里,但变量名不会使用这种方法作为合法列输出。

标签: rdplyr

解决方案


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

推荐阅读