无法在R中创建决策树

无法在R中创建决策树,r,classification,decision-tree,R,Classification,Decision Tree,当我试图构建决策树时,我无法理解下面的错误。什么是因子预测因子?因子预测器的级别数是否指预测器可能具有的值的数量 > training_data SCHOOL_TYPE URBAN_RURAL NRC_CLASS 1743 G U FAIL 2779 U R 1 1009 G U FAIL 4188 G

当我试图构建决策树时,我无法理解下面的错误。什么是因子预测因子?因子预测器的级别数是否指预测器可能具有的值的数量

> training_data
     SCHOOL_TYPE URBAN_RURAL NRC_CLASS
1743           G           U      FAIL
2779           U           R         1
1009           G           U      FAIL
4188           G           R      PASS
2264           A           R      PASS
6798           G           R      PASS
2734           A           R      PASS
1004           U           U         2
747            U           U      FAIL
1999           A           U         2
> tree_model = tree(NRC_CLASS~., training_data)
Error in tree(NRC_CLASS ~ ., training_data) : 
  factor predictors must have at most 32 levels
> str(training_data)
'data.frame':   10 obs. of  3 variables:
 $ SCHOOL_TYPE: Factor w/ 154 levels ""," ,01K,31E,61H,81K,83K,85K\nAN,AN03,AN0195,A,U,20120844515,5/17/1996 0:00,INDU P                           ,MANJULA,PARTHIBAN,1,"| __truncated__,..: 62 147 62 62 24 62 24 147 147 24
 $ URBAN_RURAL: Factor w/ 153 levels ""," ",",01K,31E,61H,81E,83E,85E\nGG,GG01,GG0378,G,R,20120471621,5/19/1996 0:00,KIRAN N,PUSHPA,VISHWANATHA BELCHADA,4,B,K,N,004GG,78,P,"| __truncated__,..: 149 115 149 115 115 115 115 149 149 149
 $ NRC_CLASS  : Factor w/ 117 levels "","01K"," ,01K,31E,61H,81E,83E,85E\nRR,RR01,RR0235,G,R,20120149169,6/25/1995 0:00,BASAVARAJ                        ,NINGAMMA,YANKAPPA,4,"| __truncated__,..: 51 14 51 93 93 93 93 16 51 16

training\u data
是我从一个更大的数据集中通过删减行和列构建出来的。

问题在于你的
因子
变量。修剪后,它们保留了原始级别(这些级别有0个实例)。您可以将它们重新转换为因子,这将删除所有未使用的级别:

# define function that reruns factor() for the right columns
rerun_factor <- function(x) {
  if (is.factor(x)) return(factor(x))
  return(x)
}

# run on all columns of your data
training_data <- as.data.frame(lapply(training_data, rerun_factor))
#定义为右列重新运行factor()的函数

重新运行系数您是否可以添加表(训练数据)或str(训练数据)@ArtemFedosov的输出,完成。表格(培训数据)太大,无法打印。我添加了str(training_data),您可能需要清理数据和/或合并变量定义,以便每个变量最多有32个唯一值。是的,因子级别数就是唯一值的数量。因子可能保留了它们的级别。运行
x