我正在尝试创建一个新的数据框架,用于获得每个官方数字的平均罚分。
STATS<-UPDATED_PENALTY%>%
aggregate(UPDATED_PENALTY, by = list(UPDATED_PENALTY$OFFICIAL_NUMBER, UPDATED_PENALTY$PENALTY), FUN = mean)
但它给了我以下错误
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)
如果您想要每个官方数字的平均分数,请尝试:
示例数据
set.seed(123)
updated_penalty <- data.frame(official_number = rep(1:5, each = 5),
penalty = rnbinom(25, mu = 5, size = 1.5))
基本R
tapply(updated_penalty$penalty, updated_penalty$official_number, mean)
输出:
# 1 2 3 4 5
# 5.0 3.8 1.4 4.2 5.4
如果你想把它放在数据帧中:
vals <- tapply(updated_penalty$penalty, updated_penalty$official_number, mean)
new_df <- data.frame(ref_id = rownames(vals),
mean_penalties = vals)
输出:
# 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
updated_penalty %>%
group_by(official_number) %>%
summarize(mean = mean(penalty))
输出:
# official_number mean
# <int> <dbl>
# 1 1 5
# 2 2 3.8
# 3 3 1.4
# 4 4 4.2
# 5 5 5.4