R语言 使用dplyr对多列进行汇总

R语言 使用dplyr对多列进行汇总

在这篇文章中,我们将讨论如何使用R编程语言中的dplyr包对多列进行汇总。

方法1:使用summaryise_all()方法

R语言中的summaryise_all方法被用来影响数据框架的每一列。输出的数据框返回数据框的所有列,其中指定的函数被应用于每一列。

summarise_all(data, function)
R

参数:

  • 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)
R

输出

[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
R

解释: 所有数值的平均值是按列计算的,也就是说,计算col1的数值之和并除以行的数量。同样地,计算col2和col3的值的总和。所有的列都会在最后的输出中返回。

方法2:使用summaryise_at()方法

summaryise_at()影响到用字符向量或vars()提取的变量。它将选定的函数应用到数据框中。输出的数据框包含所有在summaryise_at方法中指定的列。如果数据框的所有列都被提及,那么这个方法的功能就与summaryise_all方法相同。

data %>%
 summarise_at(vars(-cols(), ...), function)
R

参数:

  • 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)
R

输出

[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
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册