0
我有1个知道x的值。我也有1个公式。 Y = 0.92x现在我想翻转LHS到RHS预计产量将X = Y/0.92其乘法和除法。它应该处理所有基本的数学运算。是否有R中的任何软件包这一或者任何一个R中R中的反向公式
我有1个知道x的值。我也有1个公式。 Y = 0.92x现在我想翻转LHS到RHS预计产量将X = Y/0.92其乘法和除法。它应该处理所有基本的数学运算。是否有R中的任何软件包这一或者任何一个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
试图尽量减少对于复杂功能可能非常耗时的功能。