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 创建
我有以下数据框:
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 创建