The parameters in a specific call to a function are stored in a special list which is used to move/copy data from the calling environment into the environment created for a particular function call.
UseMethod does not act like a normal function call... it does a kind of magic substitution of the implementation method `test.default` into the call stack where the generic function `test` was. The argument list remains, but the environment associated with the generic function `test` is discarded in the process. The argument list was never actually modified in `test`... just the environment. You are expected to think of `test` as a placeholder... a kind of abstract method that doesn't actually do anything other than map from a generic method to an implementation method. Your goal of adding shared behavior this way is not possible. I recommend reading Advanced R in book form or online to help you navigate R behavior like this. On April 20, 2024 8:51:23 AM PDT, Bert Gunter <bgunter.4...@gmail.com> wrote: >I do not understand what your goal is here (more context may be helpful, >perhaps to others rather than me). So I doubt this is what you want, but >here is a guess -- no need to respond if it is unhelpful: > >## test.default returns NULL if object "y" not found in **calling >environment and enclosures**; >## otherwise y. > >test <- function(x){ > UseMethod("test") >} >test.default <- function(x){ > tryCatch(y, error = function(e)NULL) >} > >## y not found >test(x=3) >NULL > >## y found >> y <- 'abcd' >> test(x = 3) >[1] "abcd" > >Cheers, >Bert > > > > >On Sat, Apr 20, 2024 at 4:23 AM CRAN.r via R-help <r-help@r-project.org> >wrote: > >> Is there a way to pass a modified argument from an S3 generic to a >> method? Here's a non-working example that I want to return "abcd". >> >> test <- function(x, y = NULL){ >> y <- "abcd" >> UseMethod("test") >> } >> test.default <- function(x, y = NULL) y >> test(x = 3) >> >> Is that possible? I've looked around a lot, but can't find any examples or >> discussion. >> >> Jay >> >> ______________________________________________ >> 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. >> > > [[alternative HTML version deleted]] > >______________________________________________ >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. -- Sent from my phone. Please excuse my brevity. ______________________________________________ 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.