[Rd] Function some()
jfox at mcmaster.ca
Fri Sep 17 20:13:36 CEST 2004
> -----Original Message-----
> From: r-devel-bounces at stat.math.ethz.ch
> [mailto:r-devel-bounces at stat.math.ethz.ch] On Behalf Of Gabor
> Sent: Friday, September 17, 2004 12:52 PM
> To: r-devel at stat.math.ethz.ch
> Subject: Re: [Rd] Function some()
> John Fox <jfox <at> mcmaster.ca> writes:
. . .
> Its cute but you could do it on vectors and data frames with
> 2 function calls. First get some test data:
> # Now we have:
> head(sample(iris)) # data frame
> head(sample(data.frame(state.x77))) # matrix
> head(sample(letters)) # vector
A possible disadvantage of this approach is that it permutes the entire,
potentially large, object before picking the presumably small sample.
> 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.
This occurred to me, too [as did providing a random argument to head()], but
seemed a more radical proposal than introducing a simple new generic.
> R-devel at stat.math.ethz.ch mailing list
More information about the R-devel