2017-09-06 51 views
0

我想運行在我的數據框的每個變量決策樹,所以我用這個:在ctree環[R]

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 
} 

如果數據是數據框,其中第一列是ID最後一列(TARGET)是我的二進制目標。

我不斷收到此錯誤:

Error in trafo(data = data, numeric_trafo = numeric_trafo, factor_trafo = factor_trafo, : 
    data class 「character」 is not supported 

但我沒有在MI數據幀的任何字符。

我的循環或別的東西有什麼問題嗎?

謝謝你們。

回答

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) 
+0

它的工作,謝謝! – rjara