美文网首页
R语言分组计算:aggregate函数

R语言分组计算:aggregate函数

作者: Hayley笔记 | 来源:发表于2021-07-16 17:04 被阅读0次

最近处理表格经常需要把数据按照某一属性分组,然后计算一些统计值。这个需求可以通过stats包中的aggregate函数很轻松就可以实现。

## S3 method for class 'data.frame'
aggregate(x, by, FUN, ..., simplify = TRUE, drop = TRUE)

常用参数:
x, 你想要计算的属性或者列。
by, 是一个list,可以指定一个或者多个列作为分组的基础。
FUN, 指定一个函数,用来计算,可以作用在所有分组的数据上面。

type<-sample(letters[1:3],15,replace = T)
value<-sample(1:100,15,replace = T)
df<-data.frame(type,value)
df
#    type value
# 1     a    79
# 2     a    13
# 3     c    42
# 4     b    55
# 5     a    91
# 6     a    55
# 7     a    69
# 8     c    46
# 9     b    29
# 10    a    86
# 11    a    57
# 12    a    46
# 13    a    16
# 14    a    67
# 15    b    98

分组求和(也可以求均值等,只需把sum改成对应的mean等即可)

aggregate(df$value, by=list(type=df$type),sum)
#   type   x
# 1    a 579
# 2    b 182
# 3    c  88

基于多个属性分组求和。

type_2 <- sample(c('m','n'),15,replace = T)
df$type_2
df$type_2 <- type_2
df
#    type value type_2
# 1     a    79      n
# 2     a    13      m
# 3     c    42      n
# 4     b    55      n
# 5     a    91      n
# 6     a    55      n
# 7     a    69      n
# 8     c    46      m
# 9     b    29      n
# 10    a    86      n
# 11    a    57      m
# 12    a    46      n
# 13    a    16      n
# 14    a    67      n
# 15    b    98      n

aggregate(x=df$value, by=list(df$type,df$type_2),mean)
#   Group.1 Group.2        x
# 1       a       m 35.00000
# 2       c       m 46.00000
# 3       a       n 63.62500
# 4       b       n 60.66667
# 5       c       n 42.00000

相关文章

网友评论

      本文标题:R语言分组计算:aggregate函数

      本文链接:https://www.haomeiwen.com/subject/pbtmpltx.html