新数据的因素水平不匹配?
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)))
)
我正在构建决策树,以尝试对疾病表型进行建模。我在 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)))
)