【问题标题】:Ctree R function is not working with my for loopCtree R 函数不适用于我的 for 循环
【发布时间】:2021-07-19 07:08:35
【问题描述】:

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

我想用y 列表更改val 变量,用于for 循环。

有没有办法让它工作?

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))
    }

【问题讨论】:

    标签: r loops vector ctree


    【解决方案1】:

    公式应使用pastereformulate 构造。此外,用于存储输出的“ctree_model”可以是listlist 的每个元素存储与 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))
     }
    

    【讨论】:

    • 我无法让它工作。 “A”、“B”、“C”在哪里?
    • @sanwhere 你现在可以试试。不需要将字符转换为因子的步骤。所以我把它改成了levels(x)
    • @akun 仍然看不到代码中的“A”、“B”、“C”部分,我应该如何在 for 循环中添加 A、B、C 字词?跨度>
    • @akur 其实我加了代码,调好了,谢谢!它现在正在工作。
    • @akur 我已经投票了,我猜它是不可见的,因为我的经验点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 2014-12-27
    相关资源
    最近更新 更多