如何在几种条件下计算R中的均值

时间:2019-06-24 18:20:54

标签: r conditional-statements mean

我正在尝试计算此数据帧的均值并将它们分组为一个故事!我知道如何在excel中使用averageifs来做到这一点,但是因为我最终要获得标准偏差和变异系数(CV),所以我需要在R中学习。

现在我只需要刻薄。这是我的条件:

我需要一个表格,其中“ stim_ending_t”(我的时间间隔)从1.0到3.5排成一行。对于时间间隔,在计算平均值为“ key_resp_2.rt”时需要满足这三个条件

仅图像可见度和音量(V = 1&s = 0)

仅声音(V = 0和s = 1)

空白(V = 0和s = 0)

The data frame

Expected out come

2 个答案:

答案 0 :(得分:0)

这将计算stim_ending_t(6)x模态(3)= 18组均值。

首先,我生成一些数据,例如您的analysis_vanalysis_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重复代码块以获取这些平均值。

答案 1 :(得分:0)

感谢@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