Have you looked at the width.cutoff and nlines arguments to deparse? width.cutoff controls how long a line can be and it quits producing output (saving time and space) after nlines of output are produced. You want essentially the following f0 <- function(x, maxChar=20) deparse(x, width.cutoff=maxChar, nlines=1) or, to add the '...' to the end if something was cut off f1 <- function(x, maxChar=20) { # deparse warns and uses 65 if maxChar<20, so avoid that. retval <- deparse(x, width.cutoff=max(20, maxChar+1), nlines=1) if (nchar(retval) > maxChar) { retval <- paste0(substring(retval, 1, maxChar), "...") } retval } Bill Dunlap TIBCO Software wdunlap tibco.com
On Mon, May 5, 2014 at 2:44 PM, Spencer Graves <spencer.gra...@structuremonitoring.com> wrote: > Is there a standard or or a standard utility to limit the size of > deparse(substitute(.))? > > > Below please find an example of the problem plus one solution. > If another solution already exists, I might prefer to use it. > > > Thanks, > Spencer > > > ## > ## Problem > ## > deparse.x0 <- function(x)deparse(substitute(x)) > deparse.a <- do.call(deparse.x0, list(letters)) > nchar(deparse.a) # unacceptable > > [1] 62 65 4 > > > ## > ## Better > ## > deparse.x <- function(x, maxChar=20){ > name.x <- deparse(substitute(x)) > nch.x <- nchar(name.x) > name2 <- name.x[nch.x>0] > nch2 <- nch.x[nch.x>0] > if((length(name2)>1)){ > name2 <- name2[1] > } > if(nch2[1]>maxChar){ > name2 <- paste0(substring(name2, 1, maxChar), '...') > } > name2 > } > > do.call(deparse.x, list(letters)) # better > > [1] "c(\"a\", \"b\", \"c\", \"d\"..." > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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.