Ошибка dudi.hillsmith в x * w: нечисловой аргумент бинарного оператора

Я повторно запускаю анализ RLQ и 4-го угла, который я закодировал около 6 месяцев назад. Однако при анализе таблицы Q выскакивает ошибка. Я следил за учебником Stephane Dray (2013) и использовал

dudi.pca для таблицы окружения (R, 6 "числовых" переменных на 6 сайтах),

dudi.coa для таблицы присутствия видов (L, 15 видов («целые» данные) по 6 сайтам) и

dudi.hillsmith для таблицы признаков (Q, 7 смешанных признаков (5 "символьных" и 2 "числовых") по 15 видам).

dudi.pca(R), dudi.coa(L) работают нормально, но когда я пытаюсь:

> q_feeding <- dudi.hillsmith(traits_feeding, row.w=l_feeding$cw, scannf=F, nf=2)

я получил

Error in x * w : non-numeric argument to binary operator

Для простоты нашего обсуждения, «кормление» = «присутствие», это 0/1 относительно того, наблюдалось ли кормление вида на каком-либо участке. Эта ошибка также появляется с другими данными и когда L является данными об изобилии. Я попытался изменить категориальные черты на TRUE/FALSE, чтобы посмотреть, будет ли работать «логический». Я в тупике и надеюсь, что это что-то простое, чего мне не хватает.

«row.w=l_feeding$cw» возвращает вектор чисел, который говорит мне, что dudi.coa работает, поэтому я предполагаю, что моя ошибка находится в таблице «traits_feeding»:

    > traits_feeding
          by    fe         dus      fnt    mo    se       ete
c.notat  0.450 0.673        Y        N     N      N        N
c.riat   0.423 0.667        Y        N     N      Y        N
z.op     0.501 0.556        N        Y     N      N        N
s.liat   0.335 0.596        N        Y     Y      N        N
s.i      0.382 0.549        N        Y     N      N        N
n.turat  0.354 0.648        N        Y     Y      N        N
c.eeke   0.297 0.348        Y        Y     N      Y        Y
c.rdid   0.306 0.688        Y        Y     N      Y        Y
s.tipinn 0.320 0.658        Y        Y     N      Y        N
s.amele  0.302 0.695        Y        Y     N      Y        N
s.midiat 0.285 0.678        Y        Y     N      Y        N
s.obb    0.294 0.666        Y        Y     N      Y        N
s.r      0.338 0.658        Y        Y     N      Y        N
s.vulat  0.315 0.684        Y        Y     N      Y        N
s.hlege  0.302 0.670        Y        Y     N      Y        N

> class(traits_feeding$by)
[1] "numeric"
> class(traits_feeding$fe)
[1] "numeric"
> class(traits_feeding$dus)
[1] "character"
> class(traits_feeding$fnt)
[1] "character"
> class(traits_feeding$mo)
[1] "character"
> class(traits_feeding$se)
[1] "character"
> class(traits_feeding$ete)
[1] "character"

Я использую R 4.0.0 на RStudio 1.2.5042 и использую самую последнюю (16 мая 2020 г.) версию ade4.

Может ли кто-нибудь помочь мне с этим? Самая загадочная часть в том, что шесть месяцев назад это работало без ошибок, я думаю, точно так же, как и здесь...

Спасибо, Райан.


person ryanm    schedule 16.05.2020    source источник


Ответы (1)


Я столкнулся с той же проблемой, что и вы, и я считаю, что проблема связана с вашей версией R и не связана с версией ade4. Я смог решить эту проблему, удалив R 4.0 и позже установив версию 3.6.2. Надеюсь, поможет.

Ваше здоровье!

person Marco Chiminazzo    schedule 07.07.2020