R语言 搜索复杂计算的最小值

2ul0zpep  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(110)

虚构的例子。实际的计算要复杂得多。

n <- 0.3
test <- data.frame(used = c(1.545, 0.125, 0.0548), product = c(3.56, -1.589, 0.878))

test <- test %>% mutate (
  product.scale = n * product,
  p.diff = used - product.scale
)

wynik =  nrow (test[test$p.diff > 0,])

如何找到“wynik”变量变为2的(最小)值。在excel中我会使用“Goal Seek”。
任务的第二部分是为所选的n组(例如n = c(1,2,2.5,2.8,3.7))准备 Dataframe (n值和“wynik”值)

nue99wik

nue99wik1#

您可以使用蛮力方法,在n的不同参数值下测试多次运行。

test <- data.frame(used = c(1.545, 0.125, 0.0548), product = c(3.56, -1.589, 0.878))
params <- seq(0, 4, by = .1) # can try even smaller than 0.1 steps if you wanted
wynik <- rep(NA, length(params)) # initialize results object
for(i in 1:length(params)){
  n <- params[i]
  wynik[i] <- length(which(test$used - n * test$product > 0))
}
cbind(params,wynik)
 #params wynik
 #[1,]    0.0       3
 #[2,]    0.1       2
 #[3,]    0.2       2
 #[4,]    0.3       2
 #[5,]    0.4       2
 #[6,]    0.5       1
 #[7,]    0.6       1
 #...     ...       ...

相关问题