Thank you so much!  And in package 'base' no less...exactly what I needed!

On Tue, Jul 20, 2010 at 8:55 AM, David Winsemius <dwinsemius@comcast.net>wrote:

>
> On Jul 20, 2010, at 9:44 AM, Patrick McKann wrote:
>
> Hello all,
>>
>> I am trying to write a program in R in which I call a function multiple
>> times within a loop.  The problem is that sometimes the function breaks
>> down
>> while calling another function, and produces an error message that breaks
>> my
>> loop and the program stops.  I would like to keep the loop running when
>> this
>> function breaks down, and just move on to the next iteration in the loop.
>> Is there any way to buffer the output of a function within the loop, so
>> that
>> I can note that the function produced an error message, without the error
>> message breaking the loop and stopping my program?  Let me know if this
>> question does not make sense.
>>
>
> ?try
>
> This is a worked example that Josh Barnett posted a couple of days ago
> after some (lengthy) coaching:
>
> x <- read.table(textConnection("y1 y2 y3 x1 x2
> indv.1 bagels donuts bagels 4 6
> indv.2 donuts donuts donuts 5 1
> indv.3 donuts donuts donuts 1 10
> indv.4 donuts donuts donuts 10 9
> indv.5 bagels donuts bagels 0 2
> indv.6 bagels donuts bagels 2 9
> indv.7 bagels donuts bagels 8 5
> indv.8 bagels donuts bagels 4 1
> indv.9 donuts donuts donuts 3 3
> indv.10 bagels donuts bagels 5 9
> indv.11 bagels donuts bagels 9 10
> indv.12 bagels donuts bagels 3 1
> indv.13 donuts donuts donuts 7 10
> indv.14 bagels donuts bagels 2 10
> indv.15 bagels donuts bagels 9 6"), header = TRUE)
>
> closeAllConnections()
>
> results <- matrix(nrow = 1, ncol = 3)
> colnames(results) <- c("y1", "y2", "y3")
>
> require(rms)  # or Design
> for (i in 1:3) {
>    mod.poly3 <- try(lrm(x[,i] ~ pol(x1, 3) + pol(x2, 3), data=x),
> silent=TRUE)
>   if(class(mod.poly3)[1] != 'try-error')
>       {results[1,i] <- anova(mod.poly3)[1,3]}
>
>
> David Winsemius, MD
> West Hartford, CT
>
>

	[[alternative HTML version deleted]]

