有没有一种方法可以显示组中的计数和均值?

时间:2020-05-05 15:42:23

标签: r

我正在尝试按数据框中的一列进行分组,并显示出现次数和平均值。

一个例子是下表,我想按ID分组,并显示该ID的出现次数和x的平均值。

id   x   
a   4     
a   8   
b   6      
b   10   
b   6    
c   4   
c   12    

我的输出应该是这样

id  mean count  
a   6     2
b   11    3 
c   8     2

2 个答案:

答案 0 :(得分:2)

您可以使用以下代码

## your data
df <-read.table(header = TRUE, text = "
    id   x   
    a   4     
    a   8   
    b   6      
    b   10   
    b   6    
    c   4   
    c   12  ")

library(dplyr)
df %>% group_by(id) %>% 
       summarize(mean = mean(x), count = n())

收益:

# A tibble: 3 x 3
  id     mean count
  <fct> <dbl> <int>
1 a      6        2
2 b      7.33     3
3 c      8        2

答案 1 :(得分:1)

您可以将aggregatemeanlength结合使用:

aggregate(x ~ id, a, function(x) c("mean" = mean(x), "count" = length(x)))
#  id   x.mean  x.count
#1  a 6.000000 2.000000
#2  b 7.333333 3.000000
#3  c 8.000000 2.000000

数据:

a <- structure(list(id = c("a", "a", "b", "b", "b", "c", "c"), x = c(4L, 
8L, 6L, 10L, 6L, 4L, 12L)), class = "data.frame", row.names = c(NA, 
-7L))