测试组平均值在R

时间:2019-11-25 19:54:30

标签: r statistics anova t-test hypothesis-test

*(我之前提过这个问题,但是它已经迁移到stackexchange并被标记为“不清楚”,因此我无法对其进行编辑,因此我将尝试清理问题并使其更加清楚)。

我有以下数据框,需要确定测试组的方法之间是否存在统计学上的显着差异,并针对每个任务组重复此操作。 :

set.seed(123)

Task_Grouping <- sample(c("A","B","C"),500,replace=TRUE)
Test_Group <- sample(c("Green","Yellow","Orange"),500,replace=TRUE)
TotalTime <- rnorm(500, mean = 3, sd = 3)

mydataframe <- data.frame(Task_Grouping, Test_Group, TotalTime)

例如,对于任务A,我需要查看测试组的方式(绿色,黄色,橙色)是否存在显着差异。

我尝试了以下代码,但出了点问题,因为不同任务分组之间每个测试组组合的p.value都相同(即每个p值为0.6190578):

results <- mydataframe %>%
  group_by(Task_Grouping) %>%
  do(tidy(pairwise.t.test(mydataframe$TotalTime, mydataframe$Test_Group,
                 p.adjust.method = "BH")))

我也不能100%地确定pairwise.t.test是否是要使用的正确统计测试。换句话说,我需要查看Test_Group的平均值是否在统计上彼此不同。然后,我需要为每个任务分组重复此分析。

1 个答案:

答案 0 :(得分:4)

以下是使用dplyrpurrrbroom的方法

library(dply)
library(purrr)
library(broom)
mydataframe %>% 
  nest(data = c(Test_Group, TotalTime)) %>% 
  mutate(tidy=map(data, ~tidy(pairwise.t.test(.$TotalTime, .$Test_Group,
                                   p.adjust.method = "BH")))) %>%
  select(-data) %>% 
  unnest(tidy)

请注意,由于我们正在使用map,因此我们使用.$而不是mydataframe$来获取当前组而不是原始表。在broom and dplyr vignette

上查看更多示例