我正在尝试查看身高的平均值,按眼睛颜色分组 的字符,在他们的名字有一个数字。 我用聚合试过了,但我想不出解决方案
sw %>%
filter(grepl('[0-9]',name))%>%
aggregate(height~eye_color,mean)%>%
setNames(c("Eye color","Mean"))
答案 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