# [R] suprising behaviour of tryCatch()

Henrik Bengtsson henr|k@bengt@@on @end|ng |rom gm@||@com
Thu May 18 17:35:38 CEST 2023

```... or just put the R expression inside curly brackets, e.g.

tryCatch({
sexsnp[i] = fisher.test(table(data[,3], data[,i+38]))\$p
}, error=function(e) print(NA))

Exercise: Compare

> list(a = 2)
\$a
[1] 2

with

> list({ a = 2 })
[[1]]
[1] 2

and

> list(b = { a = 2 })
\$b
[1] 2

BTW, note how the latter two assigned a <- 2 to the global environment.

/Henrik

On Thu, May 18, 2023 at 8:22 AM Berwin A Turlach
<berwin.turlach using gmail.com> wrote:
>
> G'day Federico,
>
> On Wed, 17 May 2023 10:42:17 +0000
> "Calboli Federico (LUKE)" <federico.calboli using luke.fi> wrote:
>
> > sexsnp = rep(NA, 1750)
> > for(i in 1:1750){tryCatch(sexsnp[i] = fisher.test(table(data[,3],
> > data[,i + 38]))\$p, error = function(e) print(NA))} Error: unexpected
> > '=' in "for(i in 1:1750){tryCatch(sexsnp[i] ="
>
> Try:
>
> R> for(i in 1:1750){tryCatch(eval(expression("sexsnp[i] = fisher.test(table(data[,3], data[,i+38]))\$p")), error=function(e)print(NA))}
>
> or
>
> R> for(i in 1:1750){tryCatch(bquote("sexsnp[i] = fisher.test(table(data[,3], data[,i+38]))\$p"), error=function(e) print(NA))}
>
> or
>
> R> for(i in 1:1750){tryCatch(.("sexsnp[i] = fisher.test(table(data[,3], data[,i+38]))\$p"), error=function(e) print(NA))}
>
> If you want to use the '='.
>
> Cheers,
>
>         Berwin
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help