Gather()值的平均值

时间:2019-07-01 16:25:55

标签: r dplyr

我有一个最初使用collect()函数处理的数据集。我现在正在尝试在收集的数据中创建组的平均值。我在理解创建此处提供的数据平均值的最佳方法时遇到问题。我希望创建与每个组相关的平均值。在这里,我平均为“观察者”得分。

编辑:我需要为所有观察者提供所有观察日期的平均值。

EDIT-2:每个观察者都有他们要评估的任何数量的个人。如果我使用group_by(observer),则平均值将是所有观察值的总和,而不是观察者的平均值。

编辑3:我希望看到每个观察日期的平均值“保真度得分”。如果我有3个分数(90,100,120),我希望查看归因于观察者的这些值的平均值,但仍能显示一段时间内的分数。我希望的输出是:

enter image description here

重要说明:我的忠诚度得分全部在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))

1 个答案:

答案 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(如果有)。