我的引导程序和回归代码中的 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 和长度)?您确定 data
和 indices
输入以正确的顺序提供给您的 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)
我想使用自举和 运行 回归,但由于某种原因,它不起作用。我总是收到错误消息 "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 和长度)?您确定 data
和 indices
输入以正确的顺序提供给您的 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)