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.