Ошибка Anova_test (): переменная имеет только один уровень - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь запустить ANOVA с трехсторонним повторным измерением, используя функцию anova_test (). К сожалению, я подсказал, что внутренние факторы имеют только один уровень (см. Код ошибки ниже), хотя при оценке структуры фрейма данных мне показывают, что он имеет несколько уровней. Кто-нибудь может помочь?

agn.rmanova <- anova_test(
  data = df_final, dv = rt, wid = subject,
  within = c(sleep, drug, target.type)
)

Ошибка в assertthat_iv_has_enough_levels (.): Переменные Sleephas только один уровень. Удалите его из модели.

str(df_final)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 321 obs. of  8 variables:
 $ id         : num  1 1 1 1 1 1 1 1 1 1 ...
 $ supplement : chr  "A" "A" "A" "A" ...
 $ condition  : chr  "50" "50" "50" "normal" ...
 $ target.type: Factor w/ 4 levels "","negative",..: 2 3 4 2 3 4 2 3 4 2 ...
 $ rt         : num  503 647 513 506 587 ...
 $ subject    : Factor w/ 18 levels "1","4","7","8",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ sleep      : Factor w/ 2 levels "50","normal": 1 1 1 2 2 2 1 1 1 2 ...
 $ drug       : Factor w/ 3 levels "A","B","C": 1 1 1 1 1 1 2 2 2 2 ...

Я даже специально указал уровни в моих первых попытках устранения неполадок (см. Ниже), но все безуспешно.

df_final <- summary %>%
  filter(id != 2)%>%
  filter(id != 6) %>%
  mutate(sleep = factor(condition, levels = c("50", "normal")),
         drug = factor(supplement, levels = c("A", "B", "C")),
         target.type = factor(target.type, levels = c("negative","neutral","positive")),
         subject = factor(subject, levels = c("1","4","7","8","14","16","19","20",
                                              "21","23","24","25","27","29","32",
                                              "33","34","35")))

Любой помощь будет очень признателен. Спасибо!

Код ошибки

Уровни

1 Ответ

1 голос
/ 06 мая 2020

У меня тоже была эта проблема. Мой коллега помог решить эту проблему, поднастроив фрейм данных, включив в него только релевантные данные, и у меня также была переменная, отличная от времени, в неправильной категории (вместо того, чтобы быть между). Не уверен, что решило это здесь, но думал, что я поделюсь, так как это не решено!

Вот мой оригинальный код:

    rowtotaltr.aov <- anova_test(
      data = weedcts_row_cm, dv = cm_RowTotalWeeds.tr, wid = id,
      within = c(RowMulch, Date)
      )

И вот что заставило его работать по некоторым причинам:

    test<-as.data.frame(weedcts_row_cm[,c(1,3:5,12, 13)])
    test<-test[,c(1,3:5,12, 13)]
    test$Plot<-as.factor(test$Plot) 
    t<-anova_test(data = test, dv=cm_RowTotalWeeds.tr, wid=id, between=c(RowMulch), 
    within=c(Date))

Я рассматривал свой столбец графика как фактор в исходном коде, что необходимо, потому что он был просто пронумерован 1-27

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