G'day Greg, On Thu, 18 May 2023 08:57:55 -0600 Greg Snow <538...@gmail.com> wrote:
[...] > `fun(x <- expr)` Assigns the value of `expr` to the variable `x` in > the frame/environment that `fun` is called from. Only if the argument 'x' is evaluated during the function call AFAIK. If it is not, due to lazy evaluation rules, then no assignment takes place. > When you run the code with `<-` it, then the ith element of the global > variable `sexsnp` is assigned the p-value. When you run the version > with `=` then R tries to find an argument to `tryCatch` that matches > (possibly partially) `sexsnp[i]` and gives the error because it does > not find a match (not sure why it is not handled by `...`, but > tryCatch may be parsed special, or non-legal argument names on the RHS > of `-` may be checked). After exact matching on names comes partial matching on names and then positional matching. If after these three rounds there are still actual arguments left over, they are assigned to "..." (if it exist as formal argument). So under the usual rules of how actual arguments are passed to formal arguments in Federico's call the argument "sexsnp[i] = fisher.test(table(data[,3], data[,i + 38]))$p" should be assigned to the formal argument "expr" of tryCatch() and "error = function(e) print(NA))" should be absorbed by "...". But it seems, as "=" has a different meaning in function call, the expression passed to the "expr" formal argument is not allowed to contain a "=". Not sure why. :-) I guess that the intended use is actually: R> for(i in 1:1750){sexsnp[i] = tryCatch(fisher.test(table(data[,3], data[,i + 38]))$p, error = function(e) print(NA))} I.e. tryCatch() returns the result of the evaluated expression (if successful, otherwise the result of an error handler) and that result can be assigned. It is not expected the that expression contains an assignment operation. But I am just guessing. :) Cheers, Berwin ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.