[R] nls and if statements
David Winsemius
dwinsemius at comcast.net
Thu May 17 17:08:07 CEST 2012
On May 17, 2012, at 10:06 AM, DWatts wrote:
> Hi All,
>
> I have a situation where I want an 'if' variable to be
> parameterized. It's
> entirely possible that the way I'm trying to do this is wrong,
> especially
> given the error message I get that indicates I can't do this using
> an 'if'
> statement.
>
> Essentially, I have data where I think a relationship enters when a
> variable
> (here Pwd) is below some value (z). I don't know that value, so I
> want to
> fit it. The data is Pw, Tsoil, and Cfl.
>
> nlstest=nls(if(Pw>z){Cfl~K*exp(-b*Pw)+c
> }else{
> Cfl~K*(exp(-a*Tsoil))*exp(-b*Pw)+c
> },start=c(K=5.5, a=0.1, b=0.1, c=2, z=5))
>
Perhaps recasting as Boolean equivalent:
nlstest== <- nls({Cfl~ (Pw>z)*K*exp(-b*Pw)+c) +
!(Pw>z)*(K*(exp(-a*Tsoil))*exp(-b*Pw)+c)},
start=c(K=5.5, a=0.1, b=0.1, c=2, z=5))
> and provide commented, minimal, self-contained, reproducible code.
Untested in absence of data.
--
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list