2

我想为循环制作一个列表,而不是像下面这样for使用它。ctree但我不能。我得到了一些错误,例如“不支持字符”,即使我将列表更改为factor

我想val用列表改变变量,yforfor循环。

有没有办法让它工作?

y <- c("A","B","C")
x <- as.factor(y)
for(val in x) {
      ctree_model<- ctree(FTR ~ val, data = train,controls=ctree_control(minsplit=30,minbucket=10,maxdepth=10))
    }
4

1 回答 1

2

该公式应使用paste或构造reformulate。此外,用于存储输出的“ctree_model”可以是 a list,其中每个元素list存储与 x 的“val”相对应的模型,而不是覆盖

ctree_model <- vector('list', length(x))
names(ctree_model) <- levels(x)
for(val in levels(x)) {
   ctree_model[[val]] <- ctree(reformulate(val, response = 'FTR'), 
            data = train, 
     controls = ctree_control(minsplit = 30, minbucket = 10, maxdepth  =10))
 }
于 2021-04-25T19:55:44.577 回答