У меня есть фрейм данных, который выглядит следующим образом:
goal behavior dv1 dv2 dv3
1 1 4 2 6
1 5 3 5 1
1 7 2 4 2
5 1 5 2 7
5 5 2 1 3
5 7 2 1 2
7 1 4 5 7
7 5 2 1 4
7 7 3 2 5
Как видите, существует 9 условий (3 возможности для цели x 3 возможности для поведения).В фактическом наборе данных есть приблизительно 25-30 участников для каждого из 9 условий.Я пытаюсь запустить двусторонние anova в зависимых переменных (dv1
, dv2
и dv3
) в этом примере, чтобы увидеть, есть ли взаимодействие между goal
иbehavior
.
Я попытался запустить следующий код.dv
- это матрица, которая включает в себя только столбцы dv1
, dv2
, dv3
.df
- весь кадр данных выше.
output <- lm(as.matrix(dv) ~ goal * behavior, data = df,
contrasts = list(goal = contr.sum, behavior = contr.sum))
summary(aov(output))
Когда я пытаюсь создать объект output
, я получаю следующую ошибку:
Ошибка в contrasts<-
(*tmp*
, value = contrasts.arg[[nn]]):
контрасты применяются только к факторам
Я рассмотрел этот вопрос , но все еще не могу решить мою проблему.Когда я запускаю следующий код, мне говорят, что ни одна из моих переменных не считается фактором.Я не уверен, почему это так, когда и «цель», и «поведение» имеют 3 уровня с вариациями.
factor <- sapply((df), function(x) is.factor(x))
Другие вопросы, которые я здесь рассмотрел, касаются сообщения об ошибке
контрасты применяются только к факторам с двумя или более уровнями
, что отличается от сообщения об ошибке, которое я получил.Что я могу сделать, чтобы заставить это работать должным образом?