[R] Does split() preserve order?
Bert Gunter
gunter.berton at gene.com
Thu Aug 27 01:50:21 CEST 2009
Well, it depends on what you mean by "order". Split() (and most other R
functions that group things by factor levels, to my knowledge) use the
ordering of the factor levels -- which you can control via ordered(), for
example -- but which is by default lexicographic, which may or may not be
what you want. Viz.
> split(1:3,letters[3:1])
$a
[1] 3
$b
[1] 2
$c
[1] 1
> f <- factor(letters[3:1],levels = letters[3:1])
> split(1:3,f)
$c
[1] 1
$b
[1] 2
$a
[1] 3
Bert Gunter
Genentech Nonclinical Biostatisics
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Alistair Gee
Sent: Wednesday, August 26, 2009 4:41 PM
To: r-help at r-project.org
Subject: [R] Does split() preserve order?
If x is a vector (or data frame) that is in a particular order, and I
call split(x, f) to partition x, will the elements of each partition
remain in order?
That is, is the following assertion always TRUE?
for(i in split(x, f)) {
stopifnot(!is.unsorted(i))
}
I suspect that this is the case, but the help page does not discuss
preservation of order in the result of split().
______________________________________________
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