我的引导程序和回归代码中的 R 错误消息

R error message in my bootstrapping & regression code

我想使用自举和 运行 回归,但由于某种原因,它不起作用。我总是收到错误消息 "Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge"(英文:显然我有两组元素,我想将一组更改为另一组,但它们不匹配)。

有没有人看到这里可能出了什么问题:

    bootReg <- function(formula,data,indices)
    {
    d <- data[indices,]
    fit <- lm(formula, data=d)
    return(coef(fit))  
    }

    results <- boot(statistic = bootReg, 
    formula = RT ~ Code + Situation + Block, data = reg_df, R = 2000)



    #RT = reaction times (--> numeric)
    #Situation = "lab" or "online" 
    #Block = either 0,1,2 or 3 (--> as characters)
    #Code = each subject's individual code

组中的数据是相关的(=每个主题在每个情况下都有 RT X 块组合)

提前致谢!

P.S.: 我搜索了错误消息并将我的代码与其他人的(工作)方法进行了比较,但不知道这里发生了什么。

( 我知道这是此时的评论,但我想保留它作为如何解决问题的答案。如果 OP 提供更多源信息,我将添加具体诊断)

调试通用教程:

首先,尝试 traceback() 看看是内部调用引发了错误还是 boot 本身引发了错误。

接下来,查看 class 和 return 从您的 bootReg 函数编辑的对象的大小。对于 statistic 输入,boot 会接受什么?您的 formula return 是否符合您的预期 return(同样,class 和长度)?您确定 dataindices 输入以正确的顺序提供给您的 formula 吗?

这对我有用,你必须在 boot() 的公式中添加 lm()。

bootReg <- function(formula, 
                    data, 
                    indices)
{
  d <- data[indices,]
  fit <- lm(formula, data=d)
  return(coef(fit))  
}

results <- boot(statistic = bootReg, formula = lm(RT ~ Code + Situation + Block, data = df), data = df, R = 2000)