R中的聚合平均值
Posted
技术标签:
【中文标题】R中的聚合平均值【英文标题】:Aggregate mean in R 【发布时间】:2021-08-12 23:40:56 【问题描述】:我正在尝试查看 按眼睛颜色分组的身高平均值 的字符,在他们的名字中有一个数字。 我用聚合尝试过,但我无法找出解决方案
sw %>%
filter(grepl('[0-9]',name))%>%
aggregate(height~eye_color,mean)%>%
setNames(c("Eye color","Mean"))
【问题讨论】:
Pipe 和 filter() 表示您正在使用 dplyr。为什么不使用 group_by() 和 summarise()? 是的,我也试过了,但还是不知道怎么做 如果您想要完整的答案,请提供可重现的示例。但简而言之 group_by(Eyecolor) %>% summarise(new_name = mean(height)) 注意 Eyecolor 必须没有空格 好吧,我知道了。谢谢! 【参考方案1】:如果我们想使用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
【讨论】:
第一个答案(我见过)使用 R-4.1 的|>
和 anon-func \(dat) ..
,很好。
如果有疑问,starwars
在dplyr
包中【参考方案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
【讨论】:
以上是关于R中的聚合平均值的主要内容,如果未能解决你的问题,请参考以下文章
R - 对连续变量标题进行分组,将分类变量因子作为行并聚合为最小值、最大值、平均值
有没有办法使用聚合命令按组计算不对称平均值(例如从百分位数 0.05 到 0.5)? R-工作室
R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法data.tabledplyr等方案计算分组均值并添加到可视化结果中
R语言dplyr包获取dataframe分组聚合汇总统计值实战(group_by() and summarize() ):均值中位数分位数IQRMADcountunique
pandas使用groupby函数基于指定分组变量对dataframe数据进行分组使用mean函数计算每个分组中的所有数值变量的聚合平均值