r error de bosque aleatorio: el tipo de predictores en los datos nuevos no coincide

Estoy tratando de usar la función del bosque de regresión cuantil en R (quantregForest) que se basa en el paquete Random Forest. Recibo un error de desajuste de tipo que no puedo entender por qué.

Entreno al modelo usando

qrf <- quantregForest(x = xtrain, y = ytrain)

que funciona sin problemas, pero cuando trato de probar con nuevos datos como

quant.newdata <- predict(qrf, newdata= xtest)

da el siguiente error:

Error in predict.quantregForest(qrf, newdata = xtest) : 
Type of predictors in new data do not match types of the training data.

Mis datos de entrenamiento y pruebas provienen de archivos separados (por lo tanto, marcos de datos separados) pero tienen el mismo formato. He verificado las clases de los predictores con

sapply(xtrain, class)
sapply(xtest, class)

Aquí está la salida:

> sapply(xtrain, class)
pred1     pred2     pred3     pred4     pred5     pred6     pred7     pred8 
"factor" "integer" "integer" "integer"  "factor"  "factor" "integer"  "factor" 
pred9    pred10    pred11    pred12 
"factor"  "factor"  "factor"  "factor" 


> sapply(xtest, class)
pred1     pred2     pred3     pred4     pred5     pred6     pred7     pred8 
"factor" "integer" "integer" "integer"  "factor"  "factor" "integer"  "factor" 
pred9    pred10    pred11    pred12 
"factor"  "factor"  "factor"  "factor" 

Son exactamente lo mismo. También verifiqué los valores de "NA". Ni xtrain ni xtest tienen un valor de NA. ¿Me estoy perdiendo algo trivial aquí?

Actualización I: ejecutar la predicción en los datos de entrenamiento todavía da el mismo error

> quant.newdata <- predict(qrf, newdata = xtrain)
Error in predict.quantregForest(qrf, newdata = xtrain) : 
names of predictor variables do not match

Actualización, II: combiné mis conjuntos de entrenamiento y prueba para que las filas del 1 al 101 sean los datos del entrenamiento y el resto sea la prueba. Modifiqué el ejemplo proporcionado en (quantregForest) como:

data <-  read.table("toy.txt", header = T)
n <- nrow(data)
indextrain <- 1:101
xtrain <- data[indextrain, 3:14]
xtest <- data[-indextrain, 3:14]
ytrain <- data[indextrain, 15]
ytest <- data[-indextrain, 15]

qrf <- quantregForest(x=xtrain, y=ytrain)
quant.newdata <- predict(qrf, newdata= xtest)

¡Y funciona! Agradecería si alguien pudiera explicar por qué funciona de esta manera y no de la otra.

Respuestas a la pregunta(6)

Su respuesta a la pregunta