Le 11.04.2006 14:12, Prof Brian Ripley a écrit : > That's an interesting suggestion, but > > 1) it is not a good idea to change the order of arguments in a function. Yes, my mystake. It's because i like to call 'history(something)' directly and not 'history(pattern=something)'. I hadn't in mind the possibility to break existing code. > 2) is the 'unique' argument useful? I cannot see it being used if > there is no pattern search, nor I do see the merit in showing repeated > lines if I have subselected. > > 3) like ls(), testing if 'pattern' were missing or NULL would be a > better idea. Right. There is also a problem with the order of the calls. If I do :
> ls() > l <- mean(rnorm(50)) > ls() > history(pattern="^l") it prints : ls() l <- mean(rnorm(50)) when it should print : l <- mean(rnorm(50)) ls() We can use rev twice (like in history3 below), but is it worth it ? history3 <- function (max.show = 25, reverse = FALSE, pattern, ...) { file1 <- tempfile("Rrawhist") savehistory(file1) rawhist <- scan(file1, what = "", quiet = TRUE, sep = "\n") if(!missing(pattern)) rawhist <- rev( unique( rev(rawhist[grep(pattern, rawhist, ...)] ) ) ) unlink(file1) nlines <- length(rawhist) inds <- max(1, nlines - max.show):nlines if (reverse) inds <- rev(inds) file2 <- tempfile("hist") write(rawhist[inds], file2) file.show(file2, title = "R History", delete.file = TRUE) } -- visit the R Graph Gallery : http://addictedtor.free.fr/graphiques mixmod 1.7 is released : http://www-math.univ-fcomte.fr/mixmod/index.php +---------------------------------------------------------------+ | Romain FRANCOIS - http://francoisromain.free.fr | | Doctorant INRIA Futurs / EDF | +---------------------------------------------------------------+ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel