gpt4 book ai didi

R:找不到作为参数传递的函数

转载 作者:行者123 更新时间:2023-12-04 06:20:05 25 4
gpt4 key购买 nike

我正在尝试在R中编写一个简单的迭代加权最小二乘算法。我想将一个函数作为参数来计算权重,但不幸的是R提示找不到该函数。有什么想法我做错了吗?提前致谢!

这是我的代码:

irls <- function(imodel, wfunc, tol) {

repeat {
b0 <- imodel$coef
imodel <- lm(formula(imodel), weights=wfunc(imodel), data=imodel$model)
b1 <- imodel$coef
if(abs((b1-b0)/b0)<=tol) break
}

imodel
}

还有一个愚蠢的例子来演示这个问题
x <- 1:100
y <- x + rnorm(100)
mlm <- lm(y~x-1)
irls(mlm, function(x){rep(1,length(x$fit))},0.001) # error: wfunc not found

最佳答案

问题与lm如何查找数据有关。如果您将功能更改为此,它似乎可以工作

irls <- function(imodel, wfunc, tol) {

repeat {
b0 <- imodel$coef
dat <- imodel$model
dat$wts <- wfunc(imodel)
imodel <- lm(formula(imodel), weights=wts, data=dat)
b1 <- imodel$coef
if(abs((b1-b0)/b0)<=tol) break
}

imodel
}

关于R:找不到作为参数传递的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com