R 中的反向公式

Reverse Formula in R

我知道 1 个 x 的值。我也有 1 个公式。 y = 0.92x 现在我想将 LHS 翻转为 RHS 预期输出将是 x = y/0.92 用于乘法和除法。它应该处理所有基本的数学运算。 R 中是否有针对此的任何包或任何一个已在 R

中定义的函数

我认为没有任何方法可以完成您想要的。重写表示为 R 函数的数学公式并非易事。你能做的就是用uniroot来解函数。例如:

# function for reversing a function. y is your y value 
# only possible x values in interval will be considered.
inverseFun = function(y, fun, interval = c(-1e2, 1e2), ...) {
  f = function(.y, .fun, ...) y - fun(...)
  uniroot(f, interval, .y = y, .fun = fun, ...)
}
# standard math functions
add = function(a, b) a + b
substract = function(a, b) a - b
multiply = function(a, b) a * b
divide = function(a, b) a / b

# test it works
inverseFun(y = 3, add, b = 1)
# 2
inverseFun(y = -10, substract, b = 1)
# -9
inverseFun(y = 30, multiply, b = 2)
# 15
inverseFun(y = 30, divide, b = 1.75)
# 52.5

以上是一个示例,inverseFun(y = 3, `+`, b = 1) 也可以,但可能不太清楚发生了什么。最后要说的是 uniroot 试图最小化一个函数,这对于复杂的函数来说可能很耗时。