Средние значения сбора () - PullRequest
1 голос
/ 01 июля 2019

У меня есть набор данных, которым я первоначально манипулирую с помощью функции collect (). Я сейчас пытаюсь создать средние группы в собранных данных. У меня проблемы с пониманием того, как лучше составить средние данные, представленные здесь. Я надеюсь создать среднее число, связанное с каждой группой. Здесь я усредняю ​​оценки для «наблюдателей».

РЕДАКТИРОВАТЬ: Мне нужно среднее для каждого наблюдателя за все даты наблюдения.

РЕДАКТИРОВАТЬ-2: Каждый наблюдатель имеет любое количество людей, которых они будут оценивать. Если я использую group_by (наблюдатель), среднее будет по всем наблюдениям, а не по наблюдателю.

РЕДАКТИРОВАТЬ-3: Я надеюсь увидеть средние значения каждой даты наблюдения «показатель верности». Если у меня есть 3 балла (90 100 120), я хотел бы видеть среднее значение этих значений, приписанное наблюдателю, но все же иметь возможность отображать баллы с течением времени. Результат, на который я надеюсь, будет:

enter image description here

Важное примечание: все мои оценки верности из 129 возможных баллов

РЕДАКТИРОВАТЬ-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 output:

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 Ответ

1 голос
/ 01 июля 2019
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

Если полученный вами вывод не совпадает с моим для этого ввода, то вы, вероятно, уступили ошибке Загрузка plyr после dplyr и игнорирование предупреждения . Я бы предложил перезапустить R и быть осторожным, чтобы загрузить plyr до dplyr (если вообще).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...