Ошибка с аргументом bnlearn: iamb(bn) или gs(bn)

Я пытался создать байесовскую сеть с функциями iamb(x) и gs(x). Но он показал "Ошибка в check.data(x): переменная MFYield должна иметь как минимум два уровня".

Вот мой код,

bn[sapply(bn, is.character)] <- lapply(bn[sapply(bn, is.character)], as.factor)

attach(bn)

это образец моих данных "бн":

str(bn)

Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 59 obs. of 42 variables: $ MFYield : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 1 ... $ MWtA : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ... $ MWtT : Factor w/ 2 levels "0","1": 2 2 2 2 1 2 2 2 2 2 ... $ MClb : Factor w/ 2 levels "0","1": 2 2 2 2 2 1 1 1 1 1 ... $ MPS : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ... $ MTwU : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ... $ MTwD : Factor w/ 2 levels "0","1": 1 1 1 1 1 2 2 2 2 2 ... $ MTwDAgent: Factor w/ 2 levels "0","1": 1 1 1 1 1 2 2 2 2 2 ...

bn.iamb = iamb(bn)

Ошибка началась здесь, когда я пытаюсь создать сеть. Ошибка в check.data(x): переменная MFYield должна иметь как минимум два уровня.

Я не уверен, что, потому что мои данные Tibble? Тиббл: 59 х 42 Когда я проверил, он сказал:

nlevels("bn$MFYield")

[1] 0

class(bn)

[1] "tbl_df" "tbl" "data.frame"

is.factor(bn$MFYield)

[1] ИСТИНА

Итак, я думаю, что мои данные уже являются фактором, но R не может обнаружить, что они уже имеют два уровня. И я не понимаю, почему?

Как я могу это исправить? Я совсем новичок в R, пожалуйста, помогите мне пройти через это.

Спасибо.

0 ответов

Другие вопросы по тегам