微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

最小化 R 中字符输入的函数

如何解决最小化 R 中字符输入的函数

我有以下函数想要找到最小值:

model <- Create(parameter1 = list(model = "a","b"),parameter2 = list(distribution = "x","y"))

函数的四个输入是字符,并且具有尽可能多的值:

parameter1: "a","b","c","d","e"
parameter2: "x","y","z","w","t","v"

我已经尝试了几次 optim 函数,但没有成功。

感谢任何帮助。

解决方法

在每组可能的输入值处评估函数并取最少的值。

# test function
Create <- function(parameter1,parameter2) {
  sum(match(unlist(parameter1),p1),match(unlist(parameter2),p2))
}
  
p1 <- c("a","b","c","d","e")
p2 <- c("x","y","z","w","t","v")
g <- expand.grid(p1,p1,p2,stringsAsFactors = FALSE)

obj <- function(x) Create(x[1:2],x[3:4])
ix <- which.min(apply(g,1,obj))

g[ix,]
##   Var1 Var2 Var3 Var4
## 1    a    a    x    x

obj(g[ix,])
## [1] 4

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。