对输入参数的一致评估

时间:2011-08-26 03:12:18

标签: r

由于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))

}

1 个答案:

答案 0 :(得分:2)

您可能想要查看BB包,特别是BBsolve()函数。 BBsolve做了Newton-Raphson对你喂它的等式的反演。碰巧:-),我编写并发布了一个函数“ktsolve”,它允许你输入一组方程和一些变量子集,它将返回其他变量的值。 (它的名字是为了纪念商业TK!Solver包装)。如果你想尝试一下,你可以在http://witthoft.com/ktsolve.R(或http://witthoft.com/rtools.html获取它,然后点击那里的链接。)