I am not certain how nlme works so I followed an example from the web (
http://www.menne-biomed.de/gastempt/gastempt1.html). I was able to
successfully reproduce the example. However, when I modified my the example
to use my data and with my formula, I get a set of errors having to do with
the log() function. I get 10 of them (all exactly the same) and there are 10
levels in my factor variable. This seems significant to me.

Below is a list of the code I modified with comments that should help
understand what I am trying to do. If you enter the code in order from top
to bottom you will recreate what I did. If you think that the data is at
fault and want to see it, I can provide it. Also, under the code is the
errors that I get when I run the nlsList function.

Also, can nlme handle more than one independent at a time?
And I was wondering what the "model=as.character(mCall[[1]])" line in the
code did. Removing it does not seem to change the error that I receive.

My OS is WinXP.

Thank You in advance,
Chris



###########List of the code that I modified with comments##########

library(nlme)

BiLinInit0= function(mCall,LHS,data)
{
  model=as.character(mCall[[1]])        #I don't know what this does

  a <- tan(pi/4)                # 45 degree angle (rising slope)
  b <- -tan(pi/4)                # 45 degree angle (desending slope)
  c <- 0                    # intercept
  nu <- 0.434
  xy <- sortedXyData(mCall[["x"]], LHS, data)
  x <- xy[["x"]]
  x0 <- (min(x)+max(x))/2 + nu*((log(a, exp(1)) - log(b, exp(1))))/(a+b)
 #log defaults to base e

  value = c(nu,a,b,c,x0)
  names(value)=mCall[c("nu","a","b","c","x0")]
  value
}

SSBiLin=selfStart(~-nu*log(exp(-a*(x-x0)/nu)+exp(b*(x-x0))/nu, exp(1))+c,
  initial=BiLinInit0, parameters= c("nu","a","b","c","x0"))            #log
defaults to base e, but I used exp(1) just to be sure (tried with just
log(x) as well)

ge = read.table("G:\\SSNon-Linear\\BINDING DATA fixed DESCRIPTORS
ONLY.csv",sep=",",header=TRUE)
 #Load in my data set

ge$study = as.factor(ge$study)                            #Force study to be
a factor variable

gelist = nlsList(RBA~SSBiLin(Molecular.Volume,nu,a,b,c,x0)|study,data=ge)
 #This is where I get the error

contr = nlmeControl(pnlsTol=0.3)
ge0.nlme=nlme(gelist,control=contr,verbose=F)


##########Errors#######################

> gelist = nlsList(RBA~SSBiLin(Molecular.Volume,nu,a,b,c,x0)|study,data=ge)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
Error in qr(attr(rhs, "gradient")) : NA/NaN/Inf in foreign function call
(arg 1)
In addition: Warning message:
NaNs produced in: log(x, base)
>

	[[alternative HTML version deleted]]

