[R] Evaluating args in a function

Gabor Grothendieck ggrothendieck at gmail.com
Wed Sep 12 18:55:42 CEST 2007


You have a recursive reference.  Try using a different name other than
class.  For example, in the following we use class. with a dot at the end
(so that abbreviation of it still allows the user to write class):

fred <- data.frame()
test.fn <- function(x,class.=class(x)) {class.}
test.fn(fred) # "data.frame"
test.fn(fred, class = "x") # "x"


On 9/12/07, Sandy Weisberg <sandy at stat.umn.edu> wrote:
> Can anyone explain what I'm doing wrong here:
>
>  > fred <- data.frame()
>  > class(fred)
> [1] "data.frame"
>  > test.fn <- function(x,class=class(x)) {class}
>  > test.fn(fred)
> Error in test.fn(fred) : promise already under evaluation: recursive
> default argument reference or earlier problems?
>
> R 2.5.1 on both Windows and SUSE Linux.
>
>
> --
> Sanford Weisberg, sandy at stat.umn.edu
> Office and mailing address:
> University of Minnesota, School of Statistics
> 312 Ford Hall, 224 Church St. SE, Minneapolis, MN  55455
> 612-625-8355, FAX 612-624-8868
>
> St. Paul office:
> 146 Classroom-Office Building, 612-625-8777
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>



More information about the R-help mailing list