我正在尝试按数据框中的一列进行分组,并显示出现次数和平均值。
一个例子是下表,我想按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
答案 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)
您可以将aggregate
与mean
和length
结合使用:
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))