在 R 中使用 dplyr 汇总多列
在本文中,我们将讨论如何在 R 编程语言中使用 dplyr 包汇总多个列,
方法一:使用 summarise_all() 方法
R 中的 summarise_all 方法用于影响数据帧的每一列。输出数据框返回数据框的所有列,其中指定函数应用于每一列。
summarise_all(data, function)
论据:
- 数据 - 汇总列的数据框
- 函数 - 应用于所有数据框列的函数。
R
library("dplyr")
# creating a data frame
df < - data.frame(col1=sample(rep(c(1: 5), each=3)),
col2=5: 19)
print("original dataframe")
print(df)
# summarising the data
print("summarised dataframe")
summarise_all(df, mean)
R
library("dplyr")
# creating a data frame
df < - data.frame(col1=sample(rep(c(1: 5), each=3)),
col2=1: 15,
col3=letters[1:15])
print("original dataframe")
print(df)
# summarising the data
print("summarised dataframe")
df % >%
summarise_at(c("col1", "col2"), mean, na.rm=TRUE)
输出
[1] "original dataframe"
col1 col2
1 2 1
2 3 2
3 4 3
4 2 4
5 2 5
6 4 6
7 1 7
8 1 8
9 5 9
10 3 10
11 5 11
12 1 12
13 4 13
14 5 14
15 3 15
col1 col2
1 3 8
说明:所有值的平均值是按列计算的,即计算col1的值之和除以行数。类似地,计算 col2 和 col3 的值的总和。所有列都在最终输出中返回。
方法 2:使用 summarise_at() 方法
summarise_at() 影响使用字符向量或 vars() 提取的变量。它将所选函数应用于数据框。输出数据框包含 summarise_at 方法中指定的所有列。如果提到数据框的所有列,则此方法的功能与 summarise_all 方法相同。
data %>%
summarise_at(vars(-cols(), ...), function)
论据:
- 数据 - 汇总列的数据框
- 函数 - 应用于所有数据框列的函数。
R
library("dplyr")
# creating a data frame
df < - data.frame(col1=sample(rep(c(1: 5), each=3)),
col2=1: 15,
col3=letters[1:15])
print("original dataframe")
print(df)
# summarising the data
print("summarised dataframe")
df % >%
summarise_at(c("col1", "col2"), mean, na.rm=TRUE)
输出
[1] "original dataframe"
col1 col2 col3
1 3 1 a
2 5 2 b
3 4 3 c
4 4 4 d
5 5 5 e
6 3 6 f
7 2 7 g
8 2 8 h
9 1 9 i
10 4 10 j
11 2 11 k
12 5 12 l
13 1 13 m
14 3 14 n
15 1 15 o
[1] "summarised dataframe"
col1 col2
1 3 8