On 5/5/2014 3:42 PM, William Dunlap wrote:
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
   }

Hi, Bill: Thanks very much. I could have solved it myself if I had known which FMTR. Thanks again. Spencer

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.

Reply via email to