我有一个最初使用collect()函数处理的数据集。我现在正在尝试在收集的数据中创建组的平均值。我在理解创建此处提供的数据平均值的最佳方法时遇到问题。我希望创建与每个组相关的平均值。在这里,我平均为“观察者”得分。
编辑:我需要为所有观察者提供所有观察日期的平均值。
EDIT-2:每个观察者都有他们要评估的任何数量的个人。如果我使用group_by(observer),则平均值将是所有观察值的总和,而不是观察者的平均值。
编辑3:我希望看到每个观察日期的平均值“保真度得分”。如果我有3个分数(90,100,120),我希望查看归因于观察者的这些值的平均值,但仍能显示一段时间内的分数。我希望的输出是:
重要说明:我的忠诚度得分全部在129分之内
EDIT-4:我想平均观察者得分超过观察值(date_of_observation)
这是我用来创建平均值的函数。
LPLC_Group %>%
group_by(observer,date_of_observation)%>%
summarize(fidelity_score = sum(value,na.rm=TRUE),
average_fidelity = round(mean(fidelity_score,na.rm=TRUE),2))
以下dput与上面函数的输出有关。 我无法发布完整的数据集。此函数的输出应足以使用。
dput输出:
structure(list(observer = c("Cristianne", "Cristianne", "Cristianne",
"Deb", "Deb", "Deb", "Lori", "Lori", "Lori", "Pauline", "Pauline",
"Pauline"), date_of_observation = c("6/24/19", "7/24/19", "8/24/19",
"6/24/19", "7/24/19", "8/24/19", "6/24/19", "7/24/19", "8/24/19",
"6/24/19", "7/24/19", "8/24/19"), fidelity_score = c(100L, 87L,
95L, 89L, 106L, 98L, 85L, 104L, 102L, 94L, 85L, 113L), average_fidelity = c(100,
87, 95, 89, 106, 98, 85, 104, 102, 94, 85, 113)), row.names = c(NA,
-12L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"), groups = structure(list(
observer = c("Cristianne", "Deb", "Lori", "Pauline"), .rows = list(
1:3, 4:6, 7:9, 10:12)), row.names = c(NA, -4L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE))
答案 0 :(得分:1)
library(dplyr)
LPLC_Group %>%
group_by(observer) %>%
mutate(average_fidelity = mean(fidelity_score))
# A tibble: 12 x 4
# Groups: observer [4]
observer date_of_observation fidelity_score average_fidelity
<chr> <chr> <int> <dbl>
1 Cristianne 6/24/19 100 94
2 Cristianne 7/24/19 87 94
3 Cristianne 8/24/19 95 94
4 Deb 6/24/19 89 97.7
5 Deb 7/24/19 106 97.7
6 Deb 8/24/19 98 97.7
7 Lori 6/24/19 85 97
8 Lori 7/24/19 104 97
9 Lori 8/24/19 102 97
10 Pauline 6/24/19 94 97.3
11 Pauline 7/24/19 85 97.3
12 Pauline 8/24/19 113 97.3
如果您获得的输出与此输入不匹配,则您可能已经屈服于Loading plyr
after dplyr
and ignoring the warning的错误。我建议重新启动R并小心加载plyr
之前 dplyr
(如果有)。