gpt4 book ai didi

r - get 中的错误(as.character(FUN),模式= "function",envir = envir)

转载 作者:行者123 更新时间:2023-12-01 21:26:55 24 4
gpt4 key购买 nike

我是 R 新手,所以如果问题有点愚蠢请原谅我。我正在尝试为值函数迭代编写一个简单的 while 循环。我的函数(optim.routine)使用求解器 ipoptr。这是我的代码:

d<-1
old1<-0
old2<-0
num.iter<-0
i.esp<-1e-05
i.T<-100
lb<-0
ub<-10

while (d>i.eps & num.iter<i.T){
new1 <- optim.routine(old1, old2, eval_f=eval_f, eval_grad_f=eval_grad_f, lb=lb, ub=ub, update=FALSE)
d<-dist(c(old1, new1), method="euclidean")
num.iter<-num.iter+1
old1<-new1
}

其中 optim.routine 是以下函数:

optim.routine<-function(old1, old2, eval_f=obj, eval_grad_f=obj.deriv, lb=lb, ub=ub, update){
if (isTRUE(update)){
var2<-old2
var1<-old1
var1.deriv<-deriv(var1)
optimize <- ipoptr(x0 = old2, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb,
ub = ub)

new1<- optimize$objective
new2<- optimize$solution
old2<-new2
old1<-new1
}else{
var2<-old2
var1<-old1
var1.deriv<-vf.deriv(var1)
optimize <- ipoptr(x0 = old2, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb,
ub = ub)

new1<- optimize$objective
new2<- optimize$solution
old1<-new1
}
}

deriv 是计算导数的函数。

如果我尝试运行代码,则会收到以下错误:

source('/mnt/ide0/home/myname/Documents/optim.R')
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'fn' of mode 'function' was not found

如果我调试该函数:

Browse[2]> n
Error in isTRUE(update) : argument "update" is missing, with no default

如果我只获取没有 while 循环的函数,则不会显示错误。老实说,我不知道。任何帮助是极大的赞赏。谢谢!

克劳迪娅

最佳答案

I had exactly the same error message when I named a variable with the same name of an existing function in R. I've found this tip here: http://notepad.patheticcockroach.com/2565/a-bad-idea-in-r-using-variables-with-the-same-name-as-existing-functions/ Hope it helps you too. – FraNut Oct 12 at 11:26

他避免使用也可能是函数名称的变量是正确的。

例如

z1<-aggregate(steps ~ interval, data_df, mean)
mean<-mean(z[,2],na.rm = TRUE)

mean 是一个变量和一个函数名称,作为参数传递给聚合函数,导致冲突

关于r - get 中的错误(as.character(FUN),模式= "function",envir = envir),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367922/

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