I am trying to redefine the default behavior of base::table by editing .Rprofile in my home directory: table <- function(..., useNA = "ifany", exclude = if (useNA == "no") c(NA, NaN), dnn = list.names(...), deparse.level = 1){ base::table(..., useNA = useNA, exclude = exclude, dnn = dnn, deparse.level = deparse.level) } Trying it, I get > table(c(1,1,2,NA)) Error in list.names(...) : could not find function "list.names" However, by removing the argument 'dnn', it apparently works. I am probably doing this in the wrong way, but how should it be done? I can guess what 'list.names' is (from the documentation), but where and how is it defined? Thanks, G?ran (On R-4.1.3)
? Wed, 30 Mar 2022 11:27:05 +0200 G?ran Brostr?m <goran.brostrom at umu.se> ?????:> I can guess what 'list.names' is (from the documentation), but where > and how is it defined?Interesting! It's defined first thing inside the function, so by the time the function tries to use the argument, list.names exists and can be called, but for all other purposes, it's not there. What if you don't set a default value for dnn in your wrapper or even mention dnn as a formal argument in your wrapper? In many cases, it's possible to forward missing arguments to functions and have them do the right thing. The only other solution I can think of is non-standard evaluation. -- Best regards, Ivan
At the R console prompt do:> tableIt prints out the source of the table() function. The first thing there is the definition of list.names() HTH, Eric On Wed, Mar 30, 2022 at 12:27 PM G?ran Brostr?m <goran.brostrom at umu.se> wrote:> I am trying to redefine the default behavior of base::table by editing > .Rprofile in my home directory: > > table <- function(..., > useNA = "ifany", > exclude = if (useNA == "no") c(NA, NaN), > dnn = list.names(...), > deparse.level = 1){ > base::table(..., > useNA = useNA, > exclude = exclude, > dnn = dnn, > deparse.level = deparse.level) > } > > Trying it, I get > > > table(c(1,1,2,NA)) > Error in list.names(...) : could not find function "list.names" > > However, by removing the argument 'dnn', it apparently works. I am > probably doing this in the wrong way, but how should it be done? > I can guess what 'list.names' is (from the documentation), but where and > how is it defined? > > Thanks, G?ran > (On R-4.1.3) > > ______________________________________________ > R-help at 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]]