Как запустить односторонний ANOVA в R - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть набор данных, похожий на этот:

> print(mydata)
                col1                 col2                col3
1               0.819               0.851               0.874
2               0.972               0.703               0.821
3               0.891               0.790               0.951
4               0.839               0.799               0.819

Я хотел бы знать, существуют ли существенные различия между тремя группами col1, col2 и col3. В связи с этим, я думаю, что лучший способ - запустить тест anova.

Ниже приведен скрипт, который я использовал для создания набора данных, для запуска теста, и ошибка, отображаемая R:


> mydata <- data.frame(col1, col2, col3)
> accuracymetrics <- as.vector(mydata)
> anova(accuracymetrics)

Ошибка в UseMethod («anova»): нет подходящего метода для «anova» применяется к объекту класса "data.frame"

Я впервые провожу такой анализ в R, так что потерпите меня, если этот вопрос не интересен для форума. Любые входные данные для решения этой ошибки приветствуются!

1 Ответ

1 голос
/ 18 апреля 2019

если я правильно вас понял, три группы, о которых вы говорите, - это три столбца в ваших данных. Если это так, вам нужно сделать две вещи:

Во-первых, измените ваши данные из широкого в длинный формат так, чтобы он выглядел следующим образом

group | value
------------
grp1  | 0.819
grp1  | 0.972

Это легко сделать с помощью пакета tidyr

library(tidyr)
longdata <- gather(mydata, group, value)

Второе: вы должны использовать aov вместо anova:

res.aov <- aov(value ~ group, data = longdata)
summary(res.aov)

Здесь вы можете найти еще больше деталей. Надеюсь, это поможет.

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