Как рассчитать среднее значение в R с несколькими условиями - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь вычислить средства этого фрейма данных и сгруппировать их в сказку!Я знаю, как это сделать, используя средние значения в Excel, но, поскольку я хочу в итоге получить стандартное отклонение и коэффициент вариации (CV), мне нужно узнать, что в R.

Сейчас мне просто нужно среднее значение.Вот мои условия:

Мне нужна таблица, где "tim_ending_t ", в котором мои временные интервалы расположены от 1,0 до 3,5 в строках.Для временных интервалов мне нужно, чтобы эти три условия были соблюдены при расчете среднего значения, которое «key_resp_2.rt»

только изображение Видимость и объем звука (V = 1 & s = 0)

Только звук(V = 0 & s = 1)

Пусто (V = 0 & s = 0)

Кадр данных

Ожидаетсявыходи

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Спасибо за вашу помощь @Matthew Schuelke, но благодаря вашему коду я получал разные результаты при каждом запуске кода.

Вот как я решил проблему с этим кодом:

name of the new data = (name of the data frame without the parentheses) %>%
  group_by(stim_ending_t, visbility, soundvolume, Opening_text) %>%
  summarize(m = mean(key_resp_2.rt),
            sd = sd(key_resp_2.rt),
            coefVar = cv(key_resp_2.rt))

Результат, как я хотел:

stim_ending_t visbility soundvolume Opening_text               m     sd coefVar
          <dbl>     <dbl>       <dbl> <chr>                  <dbl>  <dbl>   <dbl>
1             1         0           0 Now focus on the Image  1.70  1.14    0.670
2             1         0           0 Now focus on the Sound  1.57  0.794   0.504
3             1         0           1 Now focus on the Image  1.62  1.25    0.772
4             1         0           1 Now focus on the Sound  1.84  1.17    0.637
5             1         1           0 Now focus on the Image  3.19 17.2     5.38 
6             1         1           0 Now focus on the Sound  1.59  0.706   0.444
0 голосов
/ 24 июня 2019

Это будет вычислять activ_ending_t (6) x модальность (3) = 18 групповых средних.

Сначала я генерирую некоторые данные, такие как фреймы данных analysis_v или analysis_a:

library(dplyr)
library(tidyr)

analysis_v <- data.frame(stim_ending_t = rep(seq(1, 3.5, 0.5), each = 30), 
                         visbility = rep(c(1, 0, 0), 60), 
                         soundvolume = rep(c(0, 1, 0), 60), 
                         key_resp_2.rt = runif(180, 1, 5))

Затем я передаю объект в блок кода:

analysis_v %>% 
  group_by(stim_ending_t, visbility, soundvolume) %>% 
  summarize(average = mean(key_resp_2.rt)) %>% 
  ungroup() %>% 
  mutate(key = case_when(visbility == 0 & soundvolume == 0 ~ "blank", 
                         visbility == 0 & soundvolume == 1 ~ "only_sound", 
                         visbility == 1 & soundvolume == 0 ~ "only_images")) %>% 
  select(-visbility, -soundvolume) %>% 
  spread(key, average)

Что приводит к запрошенному выходному формату:

# A tibble: 6 x 4
  stim_ending_t blank only_images only_sound
          <dbl> <dbl>       <dbl>      <dbl>
1           1    3.28        3.55       2.84
2           1.5  2.64        3.11       2.32
3           2    3.27        3.72       2.42
4           2.5  2.14        3.01       2.30
5           3    2.47        3.03       3.02
6           3.5  2.93        2.92       2.78

Вам потребуется повторить блок кода, используя analysis_a, чтобы получить эти средства.

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