R中的聚合平均值

时间:2021-05-24 16:48:44

标签: r dataframe aggregate mean

我正在尝试查看身高的平均值,按眼睛颜色分组 的字符,在他们的名字有一个数字。 我用聚合试过了,但我想不出解决方案

sw %>%
  filter(grepl('[0-9]',name))%>%
     aggregate(height~eye_color,mean)%>%
        setNames(c("Eye color","Mean"))

2 个答案:

答案 0 :(得分:2)

如果我们想使用 base R (R 4.1.0)

sw |>
    subset(grepl('[0-9]', name)) |>
    {\(dat) aggregate(cbind(Mean = height) ~ eye_color, data = dat, mean)}()

-输出

#  eye_color Mean
#1       red  131
#2 red, blue   96
#3    yellow  167

数据

data(starwars)
sw <- starwars

答案 1 :(得分:2)

dplyr 解决方案:

library(dplyr)

starwars %>%
  filter(grepl('[0-9]',name)) %>% 
  group_by(eye_color) %>% 
  summarise(mean = mean(height))

输出:

  eye_color  mean
* <chr>     <dbl>
1 black        NA
2 red         131
3 red, blue    96
4 yellow      167