[R] How to figure out which the version of split is used?

William Dunlap wdunlap at tibco.com
Fri Dec 11 18:17:03 CET 2009


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Karl Ove Hufthammer
> Sent: Thursday, December 10, 2009 1:46 AM
> To: r-help at stat.math.ethz.ch
> Subject: Re: [R] How to figure out which the version of split is used?
> 
> On Wed, 9 Dec 2009 19:20:47 -0600 Peng Yu <pengyu.ut at gmail.com> wrote:
> > Is there a way to figure out which of these variants is actually
> > dispatched to when I call split? I know that if the 
> argument is of the
> > type data.frame, split.data.frame will be called? Is it the 
> case that
> > if the argument is not of type data.frame, Date or POSIXct,
> > split.default will be called?
> 
> Yes. See ?UseMethod

You can also use trace() to see what actually happens
in test cases.  E.g.,
  > invisible(lapply(methods("split"),
      function(method)trace(method,
      bquote(cat("Entering", .(method),
      "x=", class(x), "f=", class(f), "\n")))))
  Tracing function "split.data.frame" in package "base"
  Tracing function "split.Date" in package "base"
  Tracing function "split.default" in package "base"
  Tracing function "split.POSIXct" in package "base"
  > split(data.frame(x=1:3,y=1:3), f=c(10,10,20))
  Tracing split.data.frame(data.frame(x = 1:3, y = 1:3), f = c(10, 10,
.... on entry
  Entering split.data.frame x= data.frame f= numeric
  Tracing split.default(seq_len(nrow(x)), f, drop = drop, ...) on entry
  Entering split.default x= integer f= numeric
  $`10`
    x y
  1 1 1
  2 2 2

  $`20`
    x y
  3 3 3


Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> 
> -- 
> Karl Ove Hufthammer
> 
> ______________________________________________
> 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