[Rd] Function some()

Gabor Grothendieck ggrothendieck at myway.com
Fri Sep 17 19:51:56 CEST 2004


John Fox <jfox <at> mcmaster.ca> writes:

: 
: Dear R-devel list members,
: 
: Probably not an opportune time for this, given the immanent release of
: 2.0.0, but I was just reminded (while preparing a lecture) of a function
: that I find useful and that I though might be a candidate for the utils
: package: The function, which I call some(), behaves like head() and tail(),
: from which it is adapted, except that it samples from an object (e.g., rows
: of a data frame). 
: 
: I like to use some() to get a quick look at data. Perhaps there's some other
: already existing function that I'm not aware of that does the same thing.


Its cute but you could do it on vectors and data frames with 
2 function calls.  First get some test data:

   data(iris) 
   data(state)

# Now we have:

   head(sample(iris))                  # data frame
   head(sample(data.frame(state.x77))) # matrix 
   head(sample(letters))               # vector

The only nuisance is that sample samples from the elements
of matrices rather than from their rows thereby necessitating 
the conversion in the middle call to head(sample(...)).  

Perhaps an alternate suggestion would be to modify sample 
so it becomes an S3 generic with methods for matrices and 
data frames such that sample.matrix samples from the rows 
of a matrix and sample.data.frame samples from the rows 
of a data.frame.  Then (1) the above idiom becomes consistent
across the above mentioned classes.  (2) This would also avoid
burdening the base with an extra function and would (3) provide 
for the possibility of extending sample to other classes.



More information about the R-devel mailing list