R按因子水平对各列求和

R sum various columns by factor level

我有以下数据框:

brand <- as_factor(“ford”, “audi”, “ford”, “audi”)
int1 <- c(2, 3, 4, 1)
int2 <- c(5, 6, 7, 1)
int3 <- c(1, 0, 7, 8)
df <- data.frame(brand, int1, int2, int3)

我想收到每个因子的 table 和每个数值的总和,如下所示:

目前我知道如何做 3 个独立的 tables:

bybrand <- tapply(df$int1, df$brand, FUN=sum)
bybrand <- tapply(df$int2, df$brand, FUN=sum)
bybrand <- tapply(df$int3, df$brand, FUN=sum)

如果你能在dplyr

library(dplyr, warn.conflicts = F)

df %>% group_by(brand) %>%
  summarise(across(everything(), sum))

#> # A tibble: 2 x 4
#>   brand  int1  int2  int3
#>   <fct> <dbl> <dbl> <dbl>
#> 1 audi      4     7     8
#> 2 ford      6    12     8

reprex package (v2.0.0)

于 2021-07-24 创建