BNlearn R error "variable Variable1 debe tener al menos dos niveles".

Intento crear un BN usando BNlearn, pero sigo recibiendo un error;

Error in check.data(data, allowed.types = discrete.data.types) : variable Variable1 must have at least two levels.

Me da ese error para cada una de mis variables, a pesar de que son todos factores y tiene más de 1 niveles. Como puede ver, en este caso mi variable "modelo" tiene 4 niveles

Como no puedo compartir las variables y el conjunto de datos, he creado un pequeño conjunto y un código perteneciente al conjunto de datos. Tengo el mismo problema. Sé que solo he compartido 2 variables, pero obtengo el mismo error para todas las variables.

library(tidyverse)
library (bnlearn)
library(openxlsx)

DataFull <- read.xlsx("(.....)/test.xlsx", sheet = 1, startRow = 1, colNames = TRUE)
set.seed(600)
DataFull <- as_tibble(DataFull)

DataFull$Variable1 <- as.factor(DataFull$Variable1)
DataFull$TargetVar <- as.factor(DataFull$TargetVar)

DataFull <- na.omit(DataFull)
DataFull <- droplevels(DataFull)

DataFull <- DataFull[sample(nrow(DataFull)),]
Data <- DataFull[1:as.integer(nrow(DataFull)*0.70)-1,]
Datatest <- DataFull[as.integer(nrow(DataFull)*0.70):nrow(DataFull),]
nrow(Data)+nrow(Datatest)==nrow(DataFull)

FocusVar <- as.character("TargetVar")
BN.naive <- naive.bayes(Data, FocusVar) 

Utilizandostr(data), Puedo ver que la variable ya tiene 2 o más niveles:

str (Datos)

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   27586 obs. of  2 variables:
 $ Variable1: Factor w/ 3 levels "Small","Medium",..: 2 2 3 3 3 3 3 3 3 3 ...
 $ TargetVar: Factor w/ 2 levels "Yes","No": 1 1 1 1 1 1 2 1 1 1 ...

Enlace al conjunto de datos:https: //drive.google.com/open? id = 1VX2xkPdeHKdyYqEsD0FSm1BLu1UCtOj9eVIVfA_KJ3g

Respuestas a la pregunta(1)

Su respuesta a la pregunta