[R] Question on .Options$max.print - print/cat extremely long strings on a screen
Hans-Joerg Bibiko
bibiko at eva.mpg.de
Tue Aug 15 10:15:21 CEST 2006
Dear list members,
sorry for my incompleteness!
My problem is the following:
(R 2.3.1 on Mac OS X 10.4.7 RAM 1GByte using Mac GUI)
I have a function like this:
foo1 <- function()
{
out <- NULL
for(i in 1:10010) out <- paste(out, i, ". line\n", sep="")
return(out)
}
a <- foo1()
Now I want to display 'a' on the screen:
cat(a)
This doesn't work. 'a' is displayed only until '830. line'
print(a)
The same, 'a' is displayed only until '\n754. line\n755'.
cat(a, file='test.txt') # OK
works fine. That means, internally 'a' is fine.
Then I tried this way:
foo2 <- function()
{
out <- NULL
for(i in 1:10010) out <- c(out, paste(i, ". line", sep=""))
return(out)
}
a <- foo2()
With
cat(a,sep="\n")
I see the complete content of 'a'.
paste(a, collapse = "\n")
I only see 'a' until '\n754. line\n755'.
cat(paste(a, collapse ="\n"))
I only see 'a' until '830. line'.
cat(paste(a, collapse ="\n"),file='test.txt')
This is OK.
My question now is whether there is an option to specifiy the maximum
size of a string which is displayed on the screen (running R in a
GUI)? Or is this fixed?
I read the help page about '.Options' and I found a variable
'max.print' with the comment that is not yet used in basic R.
I don't know whether this variable is responsible for that. I
increased 'max.print' but nothing changed.
##########
If I try this code on a Windows XP machine with 756 MByte RAM R-GUI
says after executing
foo1 <- function()
{
out <- NULL
for(i in 1:10010) out <- paste(out, i, ". line\n", sep="")
return(out)
}
a <- foo1()
cat(a)
...
7548. lineWarning message:
printing of extremely long output is truncated
At least Windows writes a warning message.
###########
If I start a R session without the R-GUI via Mac Terminal typing 'R'
a<-foo1()
cat(a)
everything works perfectly!!!
I know the issue of outputting long strings and the way to display
long strings via foo2() would be ok for me, but I spent some time to
figure out why my function foo1() didn't work. R, running in GUI on
Mac, don't give you a warning. Now I know that if I print a long
string at the Mac-GUI-console the missing final quote character is an
indicator for a truncated output on a Mac. Maybe it would be nice to
output a warning(?)
Cheers,
Hans
More information about the R-help
mailing list