[R] Print call condensely

Shengqiao Li shli at stat.wvu.edu
Thu Oct 9 22:03:28 CEST 2008


Hello all,

I want to print out "call" from my function. When I have  a long list of 
arguments or long names for them, I either got mulilines using default 
print or big blank space using cat:

foo<- function(data, newdata)
{
   call <- match.call();
   cat("Call:\n");
   print(call);

   cat("\nCall:\n", deparse(call), "\n\n", fill=TRUE, sep="")
   cat("\nCall:\n", gsub("\t", " ", deparse(call)), "\n\n", sep="")

}

> foo(data=A, newdata=alooooooooooooooooooooooooooooooooongname[,5:10])
Call:
foo(data = A, newdata = alooooooooooooooooooooooooooooooooongname[,
     5:10])

Call:
foo(data = A, newdata = alooooooooooooooooooooooooooooooooongname[,     5:10])



Call:
foo(data = A, newdata = alooooooooooooooooooooooooooooooooongname[,     5:10])



Note the big space between , and 5.

> sessionInfo()
R version 2.7.2 (2008-08-25)
i386-pc-mingw32

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
>


print.lm behaves simimarly.


Is there any way to cat such a call wihtout the big space?


Thanks a lot.


Shengqiao Li



More information about the R-help mailing list