[R] summary of a list

lauramorgana at bluewin.ch lauramorgana at bluewin.ch
Tue Feb 10 17:29:14 CET 2009


Hello,
I'm using the following for loop to find regression curves using a list of functions (formList), a list of starting 
values (startList), uppervalues (upperList) and lower values (lowerList).
A sample of the list of function I use in the loop is the following:

FormList <- list(PTG.P ~ fz1(Portata, a, b), PTG.P ~ fz2(Portata, a, b), PTG.P ~ fz3(Portata,a, b, d, e),
PTG.P ~ fz4(Portata, a, b), PTG.P ~ fz5(Portata, a, b, d), PO4.P ~ fz1(Portata, a, b),
PO4.P ~ fz2(Portata, a, b), ...

And the loop I use is:
resultList <- list()
for (i in 1:length(formList))
{
    resultList[[i]] <- nls(formList[[i]], data=subset(dati, Fiume=="Laveggio"), start=startList[[i]], 
    nls.control(maxiter=1000, warnOnly=TRUE), algorithm='port', na.action=na.omit,lower=lowerList[[i]], 
    upper=upperList[[i]])
}
When the computation ends I get 5 warning messages (one of false convergence, 4 of singular convergence:
In nls(formList[[i]], data = subset(dati, Fiume == "Laveggio"),  : Convergence failure: false convergence (8)
2: In nls(formList[[i]], data = subset(dati, Fiume == "Laveggio"),  : Convergence failure: singular convergence (7)

If I want to get the summary of the first object of the resultList I do:
summary(resultList[[1]])
And I get a result with no problem:
Formula: PTG.P ~ fz1(Portata, a, b)

Parameters:
  Estimate Std. Error t value Pr(>|t|)   
a   61.158     18.591   3.290  0.00140 **
b    7.616      8.720   0.873  0.38464   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 91.32 on 96 degrees of freedom

Algorithm "port", convergence message: both X-convergence and relative convergence (5)

It also works if I try to get the summary of the first 5 object of the resultList with:
summaryList<-list()
for (i in 1:5)
{
summaryList[[i]]<-summary(resultList[[i]])
}

But if I try to get the summary of all the objects of the resultList (there are 35 objects) it doesn't work...
I tried:
summaryList<-list()
> for (i in 1:length(resultList))
+ {
+ summaryList[[i]]<-summary(resultList[[i]])
+ }
And I got the following error message:
Error in chol2inv(object$m$Rmat()) : l'elemento (3, 3) è zero, quindi l'inversa non può essere calcolata
Which translated should be: Error in chol2inv(object$m$Rmat()): the element (3, 3) is zero (NULL?), that's why the 
inverse (inverse function?) can not be computed 

Does somebody have an idea on how to fix this? 

Thanks
Laura




More information about the R-help mailing list