[Rd] split.data.frame

Romain Francois romain.francois at dbmail.com
Tue Dec 15 10:06:22 CET 2009


Hello,

I very much enjoy "with" and "subset" semantics for data frames and was 
wondering if we could have something similar with split, basically by 
evaluating the second argument "with" the data frame :

split.data.frame
function(x, f, drop = FALSE, ...){
         call <- match.call( )
         fcall <- call( "with", data = call[["x"]], expr = call[["f"]] )
         ff <- eval( fcall, parent.frame(1) )

         lapply(split(seq_len(nrow(x)), ff, drop = drop, ...), 
function(ind) x[ind, , drop = FALSE])
}


 > split( df, y )
$`1`
   x y
1 1 1
2 2 1
3 3 1
4 4 1
5 5 1

$`2`
     x y
6   6 2
7   7 2
8   8 2
9   9 2
10 10 2

 > split( df, x > 3 )
$`FALSE`
   x y
1 1 1
2 2 1
3 3 1

$`TRUE`
     x y
4   4 1
5   5 1
6   6 2
7   7 2
8   8 2
9   9 2
10 10 2


Romain

-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/HlX9 : new package : bibtex
|- http://tr.im/Gq7i : ohloh
`- http://tr.im/FtUu : new package : highlight



More information about the R-devel mailing list