Я пытаюсь следовать руководству Датановиа для Двусторонние повторные измерения ANOVA .
Краткий обзор моего набора данных:
Я измерил количество различных видов бактерий в 12 единицах отбора проб за определенное время. У меня 16 временных точек и 2 группы. Я организовал свои данные в виде таблицы, называемой «богатство»;
# A tibble: 190 x 4
id selection.group Day value
<fct> <fct> <fct> <dbl>
1 KRH1 KR 2 111.
2 KRH2 KR 2 141.
3 KRH3 KR 2 110.
4 KRH1 KR 4 126
5 KRH2 KR 4 144
6 KRH3 KR 4 135.
7 KRH1 KR 6 115.
8 KRH2 KR 6 113.
9 KRH3 KR 6 107.
10 KRH1 KR 8 119.
Идентификатор относится к каждой единице выборки, а группа выбора состоит из двух факторов (KR и RK).
richness <- tibble(
id = factor(c("KRH1", "KRH3", "KRH2", "RKH2", "RKH1", "RKH3")),
selection.group = factor(c("KR", "KR", "KR", "RK", "RK", "RK")),
Day = factor(c(2,2,4,2,4,4)),
value = c(111, 110, 144, 92, 85, 69)) # subset of original data
Кажется, что моя таблица представлена в том же формате, что и один в учебнике;
> str(selfesteem2)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 72 obs. of 4 variables:
$ id : Factor w/ 12 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
$ treatment: Factor w/ 2 levels "ctr","Diet": 1 1 1 1 1 1 1 1 1 1 ...
$ time : Factor w/ 3 levels "t1","t2","t3": 1 1 1 1 1 1 1 1 1 1 ...
$ score : num 83 97 93 92 77 72 92 92 95 92 ..
Прежде чем я смогу выполнить повторные измерения ANOVA, я должен проверить правильность своих данных. Я скопировал рамки, предложенные в учебнике.
#my code
richness %>%
group_by(selection.group, Day) %>%
shapiro_test(value)
#tutorial code
selfesteem2 %>%
group_by(treatment, time) %>%
shapiro_test(score)
Но при попытке запустить код появляется сообщение об ошибке «Ошибка: столбец variable
неизвестен». кто-нибудь знает, почему это произошло?
Я попытался продолжить без гарантии того, что мои данные нормально распределены, и попытался запустить ANOVA
res.aov <- rstatix::anova_test(
data = richness, dv = value, wid = id,
within = c(selection.group, Day)
)
, но получил это сообщение об ошибке; Ошибка в lm.fit (x, y, offset = offset, singular.ok = singular.ok, ...): 0 (не для NA) случаев
Я проверил значения NA с any(is.na(richness))
который возвращает FALSE. Я также проверил table(richness$selection.group, richness$Day)
, чтобы убедиться, что мои настройки верны
2 4 6 8 12 16 20 24 28 29 30 32 36 40 44 50
KR 6 6 6 6 6 6 6 6 6 6 6 5 6 6 6 6
RK 6 6 6 6 6 5 6 6 6 6 6 6 6 6 6 6
И настройки кажутся правильными. Буду очень признателен за советы по решению этой проблемы.
С наилучшими пожеланиями, Мадлен
Ниже приведено подмножество моего набора данных в воспроизводимом формате:
library(tidyverse)
library(rstatix)
library(tibble)
richness_subset = data.frame(
id = c("KRH1", "KRH3", "KRH2", "RKH2", "RKH1", "RKH3"),
selection.group = c("KR", "KR", "KR", "RK", "RK", "RK"),
Day = c(2,2,4,2,4,4),
value = c(111, 110, 144, 92, 85, 69))
richness_subset$Day = factor(richness$Day)
richness_subset$selection.group = factor(richness$selection.group)
richness_subset$id = factor(richness$id)
richness_subset = tibble::as_tibble(richness_subset)
richness_subset %>%
group_by(selection.group, Day) %>%
shapiro_test(value)
# gives Error: Column `variable` is unknown
res.aov <- rstatix::anova_test(
data = richness, dv = value, wid = id,
within = c(selection.group, Day)
)
# gives Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
# 0 (non-NA) cases