1
感谢R对函数参数的评估,可以指定一组一致的输入参数,并且可以自动计算其他参数。对输入参数的一致评估
考虑下面的函数,连接浓度,质量,体积和摩尔量为化学稀释,
concentration <- function(c = m/(M*V), m = c*M*V, V = m/(M*c), M = 417.84){
cat(c("c=", c*1e6, "micro.mol/L\n",
"m=", m*1e3, "mg\n",
"M=", M, "g/mol\n",
"V=", V*1e3, "mL\n"))
## mol/L, g, g/mol, L
invisible(list(c=c, m=m, M=M, V=V))
}
是否有只指定方程之一和具有R搞清楚其他的方式通过倒置?我意识到这仅限于简单的线性关系,因为通常不能通过分析来表示反演。
concentration <- function(c = m/(M*V), m, V, M = 417.84){
## { magic.incantation }
## mol/L, g, g/mol, L
invisible(list(c=c, m=m, M=M, V=V))
}
听起来不错 - 你有一个简单的例子吗? – baptiste
Baptiste:启动w/BBsolve帮助页面,然后尝试ktsolve.R函数标题中的示例函数。 #yfunc - 是如下形式的函数: #\t yfunc <-function(x)的{ #\t \tÝ<维矢量() #\t \t Y [1] < - F1(x)的 #\t \t Y [2] < - F2(x)的 #\t \t Y [长度(X)] < - FN(X) #\t \tý #\t \t} #\t其中,y [j]的被假人这将是驱动为零, #\t和x [j]是一个虚拟矢量,将填入'猜' #因此,例如:d = a + sqrt(b)和a = sin(a/b)+ g *的格式必须输入为y [j] < - f(x) exp(f * a)变成 #y [1] <-a-d + sqrt(b)和y [2] <-sin(a/b)+ g * exp(f * a)-a, –
和...#和例如 #known < - list(a = 3,d = 5,g = .1)是固定参数,并且是BBsolve() –