Thank you all for the precious tips. For memory I've made the
following wrapper function for this. I wonder whether a short note on
these regular expressions could be useful on the help page of cut().
cutIntervals <- function(x, ...){
dotArgs <- unlist(c(...))
if( any(names(dotArgs) == "labels")) stop("labels cannot be
specified, use cut instead")
cut.fact <- levels(cut(x,labels=NULL, ...))
# tip from Brian Ripley
lims <- matrix(nrow=length(cut.fact), ncol=2)
lims[,1] <- as.numeric( sub("\\((.+),.*", "\\1", cut.fact) )
lims[,2] <- as.numeric( sub("[^,]*,([^]]*)\\]", "\\1", cut.fact) )
# alternatively (Stephen Tucker)
# library(gsubfn)
# lims <- t(strapply(cut.fact,"([0-9.]+),([0-9.]+)",
# function(...)
as.numeric(c(...)),backref=-2,simplify=TRUE))
lims
}
cutIntervals(1:5, 3)
Many thanks,
baptiste
On 9 Aug 2008, at 11:12, Prof Brian Ripley wrote:
On Sat, 9 Aug 2008, baptiste auguie wrote:
Dear list,
I have the following example, from which I am hoping to retrieve
numeric values of the factor levels (that is, without the brackets):
x <- seq(1, 15, length=100)
y <- sin(x)
my.cuts <- cut(which(abs(y) < 1e-1), 3)
levels(my.cuts)
hist() does not suit me for this, as it does not necessarily
respect the number of breaks.
getAnywhere hasn't got me very far: I cannot seem to find a
readable code for the built-in cut function in the base library. I
think getMethod should do it but I don't understand the arguments
to pass.
Not getMethod (that's for S4 methods). Just type cut.default at the
R prompt.
However, try
example(cut)
foo <- levels(cut(aaa, 3))
lims <- matrix(nrow=length(foo), ncol=2)
lims[,1] <- as.numeric( sub("\\((.+),.*", "\\1", foo) )
lims[,2] <- as.numeric( sub("[^,]*,([^]]*)\\]", "\\1", foo) )
--
Brian D. Ripley, [EMAIL PROTECTED]
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
_____________________________
Baptiste AuguiƩ
School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK
Phone: +44 1392 264187
http://newton.ex.ac.uk/research/emag
______________________________________________
R-help@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.