Try this:

evaluate.all <- function(response, DF = iris) {

        DF <- cbind(response = DF[[response]], DF)

        L <- list(

        # some linear models:
                B1 = try(lm(response ~ Sepal.Length, DF)),
                L2 = try(lm(response ~ Sepal.Width, DF)),

                # some nonlinear models:
                M1 = try(nls(response ~ a*Sepal.Length/(b+Sepal.Length),
                                start=list(a=1,b=1), DF)),
                E1 = try(nls(response ~ a+b*exp(c*Sepal.Length),
                                start=list(a=1,b=1,c=1), DF))
        )

        sapply(Filter(function(x) !inherits(x, "try-error"), L), extractAIC)
}
evaluate.all("Petal.Width", iris)

On Sat, Oct 25, 2008 at 9:48 AM, Dr. Christoph Scherber
<[EMAIL PROTECTED]> wrote:
> Dear R users,
>
> I have written a function that runs several statistical models and extracts
> the AIC values from them.
>
> As a (nonsense) example, I use the iris dataset:
>
>
> #############
> data(iris)
> attach(iris)
>
> evaluate.all=function(response,...){
> response=get(response)  #retrieves the response variable
>
> # some linear models:
>
> B1=lm(response~Sepal.Length,iris)
> L2=lm(response~Sepal.Width,iris)
>
> # some nonlinear models:
> M1=nls(response~a*Sepal.Length/(b+Sepal.Length),start=list(a=1,b=1),iris)
> E1=nls(response~a+b*exp(c*Sepal.Length),start=list(a=1,b=1,c=1),iris)
>
> #[... and so on]
>
> #now paste the names of the models together
> mm=c("B1","L2","M1","E1")
>
> # and extract the AICs for those models that exist in the .GlobalEnv
> extracted.AICs=
> sapply(mm[which(sapply(mm,function(x)exists(x,-1))==T)],function(x){x=get(x);extractAIC(x)})
>
> # finally, print those values
> print(extracted.AICs)
> }
>
> evaluate.all("Petal.Width")
>
> #############
>
> Now the problem is that the function stops because the nonlinear models
> produce error messages.
>
> I have tried "try()", options() and other things already, but without
> success.
>
> How can I make the code run, so that the nonlinear models are "skipped"
> and the extracted.AICs are still printed?
>
> Many thanks for any help!
>
> All the best
> Christoph
>
>
> --
> Christoph Scherber
> Agroecology, Univ. Goettingen
> 37073 Goettingen
> Germany
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to