gpt4 book ai didi

r - 使用 lapply 最大化网格上的函数

转载 作者:行者123 更新时间:2023-12-02 08:46:33 25 4
gpt4 key购买 nike

我重写了问题以使其可重现。假设我想沿着我自己选择的网格最大化 alpha,eta,gamma 的函数 exp(alpha+eta+gamma)。我已经使用 for 循环完成了此操作,但我想利用应用函数来加快该过程。这是我所做的(eta 和 gamma 在这里保持固定)。

eta=0.11
gamma=0.06
alpha=0.5
alpha_vals=seq(0.1,1,by=0.1)
eta_vals=eta
gamma_vals=gamma


ml_temp=-Inf

lapply(alpha_vals,function(alpha_v){
lapply(eta_vals,function(eta_v){
lapply(gamma_vals,function(gamma_v){
temp=exp(alpha_v+eta_v+gamma_v)
if (temp >= ml_temp) {
ml_temp=temp
mle_matrix=c(alpha_v,eta_v,gamma_v)
}
})
})
})

输出 mle_matrix 我得到 0 0 0,所以显然有些东西不起作用。感谢您的帮助。

最佳答案

最简单的方法是使用 expand.grid() 和 apply()

toTest <- expand.grid(
alpha = seq(0.1, 1, by = 0.1),
eta = seq(0.1, 1, by = 0.1),
gamma = seq(0.1, 1, by = 0.1))
ml <- apply(toTest, 1, function(x){
exp(sum(x))
})
toTest[which.max(ml), ]

关于r - 使用 lapply 最大化网格上的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069377/

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