R 使用ggplot2-类型为'的错误对象拟合nls;符号';不可再附加

R 使用ggplot2-类型为'的错误对象拟合nls;符号';不可再附加,r,ggplot2,curve-fitting,data-fitting,nls,R,Ggplot2,Curve Fitting,Data Fitting,Nls,我正在尝试使用以下数据对ggplot进行nls拟合: df对于nls您必须更仔细地指定参数。另外,您可能不想使用log(y),因为这将绘制对数,而不是y。我的猜测是,您希望使用类似于y~exp(a+b*x)的东西。请参见下面的示例 ggplot(df, aes(x = t, y = m))+ geom_point()+ geom_smooth(method = "nls", formula = y ~ exp(a + b * x), start=list(a=0, b=1), se=F

我正在尝试使用以下数据对ggplot进行nls拟合:
df对于
nls
您必须更仔细地指定参数。另外,您可能不想使用
log(y)
,因为这将绘制对数,而不是
y
。我的猜测是,您希望使用类似于
y~exp(a+b*x)
的东西。请参见下面的示例

ggplot(df, aes(x = t, y = m))+
  geom_point()+
  geom_smooth(method = "nls", formula = y  ~ exp(a + b * x), start=list(a=0, b=1), se=FALSE)
您还可以使用
glm
而不是
nls
。例如,下面给出了相同的解决方案

ggplot(df, aes(x = t, y = m))+
  geom_point()+
  geom_smooth(method = "glm", formula = y  ~ x, family=gaussian(link = "log"), se=FALSE)
ggplot(df, aes(x = t, y = m))+
  geom_point()+
  geom_smooth(method = "nls", formula = y  ~ exp(a + b * x), start=list(a=0, b=1), se=FALSE)
ggplot(df, aes(x = t, y = m))+
  geom_point()+
  geom_smooth(method = "glm", formula = y  ~ x, family=gaussian(link = "log"), se=FALSE)