R语言 使用dplyr对多列进行汇总
在这篇文章中,我们将讨论如何使用R编程语言中的dplyr包对多列进行汇总。
方法1:使用summaryise_all()方法
R语言中的summaryise_all方法被用来影响数据框架的每一列。输出的数据框返回数据框的所有列,其中指定的函数被应用于每一列。
summarise_all(data, function)
参数:
- data – 要总结的数据框架的列
- function – 应用于所有数据框架列的函数。
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)
输出
[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:使用summaryise_at()方法
summaryise_at()影响到用字符向量或vars()提取的变量。它将选定的函数应用到数据框中。输出的数据框包含所有在summaryise_at方法中指定的列。如果数据框的所有列都被提及,那么这个方法的功能就与summaryise_all方法相同。
data %>%
summarise_at(vars(-cols(), ...), function)
参数:
- data – 要总结的数据框架的列
- function – 应用于所有数据框架列的函数。
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