新数据的因素水平不匹配?

Levels in factors of new data does not match?

我正在构建决策树,以尝试对疾病表型进行建模。我在 R 方面不太有经验,所以不确定该怎么做,因为我在最后挣扎。

我的测试数据如下所示: [![在此处输入图片描述][1]][1]

我的预测数据: [![在此处输入图片描述][2]][2]

问题是每个级别都不同,所以当我输入以下内容时出现错误:

> predict_data$Phenotype.tree <- predict(tree.train, predict_data)
Error in checkData(oldData, RET) : 
  Levels in factors of new data do not match original data

我该如何解决? [1]: https://i.stack.imgur.com/TVWNy.png [2]: https://i.stack.imgur.com/wnB6R.png

如果没有最少的可重现代码,就很难提供帮助。似乎 disease_data 集有一个 predict_data 数据没有的额外因素(表现型)。

可能想做

predict_data <- transform(predict_data, 
    rs139052738 = factor(rs139052738, levels = levels(disease_data$rs139052738))

或使用 tidyverse

predict_data <- (predict_data 
  %>% mutate(across(rs139052738, factor, levels = levels(disease_data$rs139052738)))
)