for ctree循环[R]

时间:2017-09-06 00:08:50

标签: r loops character

我想为我的数据框中的每个变量运行一个决策树,所以我正在使用它:

results_cont = list()

for (i in 2:(ncol(DATA)-1)) {
  current_var = colnames(DATA[i])
  current_result = ctree(TARGET ~ current_var, DATA, control = ctrl)
  results_cont[[i]] = current_result
}

其中DATA是数据帧,其中第一列是ID,最后一列(TARGET)是我的二进制Target。

我一直收到这个错误:

Error in trafo(data = data, numeric_trafo = numeric_trafo, factor_trafo = factor_trafo,  : 
  data class “character” is not supported

但我在mi数据帧中没有任何字符。

我的循环或其他东西有什么问题吗?

谢谢你们。

1 个答案:

答案 0 :(得分:1)

由于您没有提供数据,我没有对此进行测试,但我相信您的问题就在于行 current_result = ctree(TARGET ~ current_var, DATA, control = ctrl)
这不起作用,因为current_var只是一个字符串。您需要将公式构建为字符串,然后将其转换为公式 - 如下所示:

current_var = colnames(DATA[i])
FORM = as.formula(paste("TARGET ~ ", current_var))
current_result = ctree(FORM, DATA, control = ctrl)