首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用聚合在另一列的in组的列中获取平均值

使用聚合在另一列的in组的列中获取平均值
EN

Stack Overflow用户
提问于 2022-10-14 18:40:16
回答 1查看 20关注 0票数 0

我正在努力创建一个新的数据框架,以获得每个官方数字的平均罚分。

代码语言:javascript
复制
STATS<-UPDATED_PENALTY%>%
aggregate(UPDATED_PENALTY, by = list(UPDATED_PENALTY$OFFICIAL_NUMBER, UPDATED_PENALTY$PENALTY), FUN = mean)

但是它给了我以下错误

代码语言:javascript
复制
Error in mean.default(X[[i]], ...) : 'trim' must be numeric of length one
In addition: There were 50 or more warnings (use warnings() to see the first 50)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 19:06:53

如果您想要每个官方数字的平均分数,请尝试:

示例数据

代码语言:javascript
复制
set.seed(123)
updated_penalty <- data.frame(official_number = rep(1:5, each = 5),
                              penalty = rnbinom(25, mu = 5, size = 1.5))

基R

代码语言:javascript
复制
tapply(updated_penalty$penalty, updated_penalty$official_number, mean)

输出:

代码语言:javascript
复制
# 1   2   3   4   5 
# 5.0 3.8 1.4 4.2 5.4 

如果要将其放在数据框架中:

代码语言:javascript
复制
vals <- tapply(updated_penalty$penalty, updated_penalty$official_number, mean)
new_df <- data.frame(ref_id = rownames(vals),
                     mean_penalties = vals)

输出:

代码语言:javascript
复制
#   ref_id mean_penalties
# 1      1            5.0
# 2      2            3.8
# 3      3            1.4
# 4      4            4.2
# 5      5            5.4

DPLYR

代码语言:javascript
复制
updated_penalty %>% 
  group_by(official_number) %>% 
  summarize(mean = mean(penalty))

输出:

代码语言:javascript
复制
#   official_number  mean
#             <int> <dbl>
# 1               1   5  
# 2               2   3.8
# 3               3   1.4
# 4               4   4.2
# 5               5   5.4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74073529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档