dan - 8 months ago 63

R Question

Trying to use

`R`

`tryCatch`

`df <- data.frame(dose=c(10,0.62,2.5,0.16,0.039,0.0024,0.0098,0.00061,10,0.62,2.5,0.16,0.039,0.0024,0.0098,0.00061,10,0.62,2.5,0.16,0.039,0.0024,0.0098,0.00061),`

viability=c(22,79,100,61,100,87,75,51,6.5,37,100,100,90,100,42,41,5,100,13,100,91,100,95,100),

stringsAsFactors = F)

with

`drc`

`drm`

`library(drc)`

fit <- tryCatch(

{

drm(viability~dose,data=df,fct=LL.4(names=c("slope","low","high","ED50")))

},

error=function(cond){

return(NA)

},

warning=function(cond){

return(NA)

},

finally={

}

)

I get:

`> fit`

[1] NA

However, when I try without

`tryCatch`

`> drm(viability~dose,data=df,fct=LL.4(names=c("slope","low","high","ED50")))`

A 'drc' model.

Call:

drm(formula = viability ~ dose, data = df, fct = LL.4(names = c("slope", "low", "high", "ED50")))

Coefficients:

slope:(Intercept) low:(Intercept) high:(Intercept) ED50:(Intercept)

1.498 -163.577 81.031 18.481

Am I not using

`tryCatch`

Answer

You are using `tryCatch`

correctly. Your code is throwing a warning. I modified your code to return the error or warning message:

```
fit <- tryCatch(
{
drm(viability~dose,data=df,fct=LL.4(names=c("slope","low","high","ED50")))
},
error=function(cond){
return(cond)
},
warning=function(cond){
return(cond)
},
finally={
}
)
```

And now running `fit`

reveals that `drm`

is throwing a warning:

```
> fit
<simpleWarning in log(dose/parmMat[, 4]): NaNs produced>
```

Source (Stackoverflow)