我已经使用nls拟合了参数函数,现在我想打印出该函数的表达式,并将学习到的参数替换回去。例如:

x <- runif(100, 0, 100)
m <- 13 * exp(-0.05 * x^2) + 0.1 + runif(100,0,0.1)
mod <- nls(m ~ a*exp(-b*x^2)+c, start=list(a=10,b=0.1,c=0.1))

我可以像这样提取公式和系数:

formula(mod)
# m ~ a * exp(-b * x^2) + c
coef(mod)
#           a           b           c 
# 13.00029360  0.04975388  0.14457936 

但是我看不到直接替代它们的方法。 我似乎唯一能做的就是再次写出公式:

substitute(m ~ a * exp(-b * x^2) + c, as.list(round(coef(mod), 4)))
# m ~ 13.0003 * exp(-0.0498 * x^2) + 0.1446

我的最终目标是从磁盘上的RDS文件读取一个合适的nls对象,并在组织模式文档中显示其功能表达式。

===============>>#1 票数:4 已采纳

这是您要找的东西吗?

do.call(substitute, args=list(formula(mod), as.list(round(coef(mod),4))))
# m ~ 13.0097 * exp(-0.0501 * x^2) + 0.1536

之所以起作用,是因为do.call首先对args两个参数求值,然后才使用substitute()将系数代入公式表达式中。 即, do.call()最终求值的表达式如下所示:

as.call(list(substitute, formula(mod), as.list(round(coef(mod),4))))
# .Primitive("substitute")(m ~ a * exp(-b * x^2) + c, list(a = 13.0097, 
# b = 0.0501, c = 0.1536))

  ask by Ken Williams translate from so

未解决问题?本站智能推荐:

1回复

如何合并图例中多个项目的表达式?

我似乎无法建立一个混合文字和表达式的图例。 我需要使用bquote在表达式中添加一个值,但似乎无法将其与图例中另一个项目的文本连接起来。 例如: 有任何将两个项目混合使用以获得预期结果的想法吗?
1回复

表达式编程

我已经建立了一个可以正常工作的计算器,该计算器可以评估任何表达式并绘制图形。 我还建立了一个符号微分器 ,可以正确地区分wrt x公式,但是由于如何通过编程简化任何通用方程式而使我有些失落,因为在最后一刻,答案出了很多倍。 我意识到a * 1很容易简化,但是我需要一个全面的简化器来解决任何情
1回复

qlikview表达式中从日期算起的天数

我试图从这样的给定数据中获取日子: 在此数据中,假设ID B的start date为4/10/2019 , end date为10/25/2019 。 这里有7个月:四月到十月,所以第一个月的start date是4/10/2019 , end date是4/30/2019因此这意味着
1回复

整数到字符串公式表达式(Pentaho报表设计器)

我正在尝试在Pentaho Report Designer 3.9中编写公式表达式。 该表达式将采用SEMIANNUAL1_VALUE属性,该属性为int或数字字段,并且当值为-1时显示“ N / A”。 下面是我目前无法使用的表达式。 我在Pentaho Report Design
5回复

如何以编程方式将字符串转换为数学表达式

我是C#的初学者。 我在将字符串转换为数学表达式时遇到问题。 我有一个UI,用户可以使用随机公式字段创建公式。 在另一个UI用户将提供那些公式字段的输入。 例如,在第一时间,公式可以是(a+b)^n而另一个公式可以是((a+b+c)^n+b) 。 在我的计算UI中,用户将首次为
2回复

R:来自值序列的取代表达式的序列

我想生产 从 是否有一种不那么笨拙的方式来做到这一点 ? 我尝试过以下方法:
1回复

表达式0 <\\ alpha <1的R表达式

我希望在涉及表达式的R图中有一个图例。 我做到了 这很好用。 但如果我将0 < alpha替换为0 < alpha 0 < alpha < 1我会收到错误。 有人能告诉我如何获得0 < \\alpha < 1形式的表达式吗? 我没有在网上找到它
1回复

在R中使用表达式

我使用R有点新,需要创建一个这样的表达式。 这不是问题。 问题是我无法分离函数的属性,因此我正在使用myexpression[[3]]并返回functionA(a=x[1],b=x$val,c=1,d=2) ,如果再次执行myexpression[[3]][[1]] ,则此返回func
4回复

结合R中的表达式

我试图将R中的多个表达式组合成一个表达式。 理想情况下,我可以做这样的事情: 其中a是给定的数据向量, x是唯一未知的(并且它在所有表达式中都是相同的未知)。 c会回来 现在,当我这样做时,我得到了 我想要一个等式 (来源: lehrfeld.me )
1回复

R表达式变量列表

是否可以在表达式中获取向量或变量列表? 例如: 所需的输出: 可能吗? 或者是否需要手动输入变量名称?