[R] R console line-wrapping

Nick Matzke matzke at berkeley.edu
Thu Sep 17 03:40:34 CEST 2009


David Winsemius wrote:
> 
> On Sep 15, 2009, at 5:47 PM, Nick Matzke wrote:
> 
>> Hi all, a quick question I couldn't find the answer to in the usual 
>> places:
>>
>> Is there a way to turn off line-wrapping in the R console?  Or set the 
>> line width-before-wrapping manually?  Currently it looks like the 
>> console linewraps after about 70 characters, this occurs even if I 
>> increase the window size.
>>
>> (I want to output some simple tables to screen for students in a 
>> computer lab course)
> 
> ?options
> --------------
> width:
> controls the maximum number of columns on a line used in printing 
> vectors, matrices and arrays, and when filling by cat.
> Columns are normally the same as characters except in CJK languages.
> You may want to change this if you re-size the window that R is running 
> in. Valid values are 10...10000 with default normally 80. (The limits on 
> valid values are in file ‘Print.h’ and can be changed by re-compiling 
> R.) Some R consoles automatically change the value when they are resized.
> 
> ----------end help page info---------
> 
>>
>> I am running R2.9, i.e. R.app, in Mac OS X.

Hi again -- thanks for the help.  However, I can't get cat or print to 
not line wrap to the console width.  This is not a huge deal though 
since I can make my console width pretty big.

However, what is weird is the behavior I get with cat when sep=tab.  See 
below.

==============
 > getOption("width")
[1] 400
 > freqs = rep(0.25, 25)
 > print(freqs)
  [1] 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
 > print(freqs, quote=FALSE)
  [1] 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
 > cat(freqs)
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
 > cat(freqs, sep="\t")
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 > cat(freqs, sep="\t", fill=FALSE)
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 > cat(freqs, sep="\t", fill=TRUE)
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 > cat(freqs, sep="\t", fill=400)
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 >
 > # Try setting wider width
 > getOption("width")
[1] 400
 > options(width=400)
 > print(freqs)
  [1] 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
 > print(freqs, quote=FALSE)
  [1] 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
 > cat(freqs)
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 
0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
 > cat(freqs, sep="\t")
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 > cat(freqs, sep="\t", fill=FALSE)
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 > cat(freqs, sep="\t", fill=TRUE)
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 > cat(freqs, sep="\t", fill=400)
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25 
0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25	0.25
 >
==============


If the line breaks don't translate to email, basically, these commands:
print(freqs)
print(freqs, quote=FALSE)
cat(freqs)

...don't produce line breaks until the right edge of the R console 
window, whereas these:

cat(freqs, sep="\t")
cat(freqs, sep="\t", fill=FALSE)
cat(freqs, sep="\t", fill=TRUE)
cat(freqs, sep="\t", fill=400)

...all produce line breaks after only 6 columns.


All I really want to do is print out a formatted string each time I loop 
through a for-loop, but without quotes, without the [1], and with the 
printed out columns lining up despite some columns having text, others 
numbers, and others numbers of a different size.  This must be a newbie 
question, but I can't find anything obvious in R-help.

Help appreciated!
Cheers,
Nick










>>
> 
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
> 
> 

-- 
====================================================
Nicholas J. Matzke
Ph.D. Candidate, Graduate Student Researcher
Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley

Lab websites:
http://ib.berkeley.edu/people/lab_detail.php?lab=54
http://fisher.berkeley.edu/cteg/hlab.html
Dept. personal page: 
http://ib.berkeley.edu/people/students/person_detail.php?person=370
Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email: matzke at berkeley.edu

Mailing address:
Department of Integrative Biology
3060 VLSB #3140
Berkeley, CA 94720-3140

-----------------------------------------------------
"[W]hen people thought the earth was flat, they were wrong. When people 
thought the earth was spherical, they were wrong. But if you think that 
thinking the earth is spherical is just as wrong as thinking the earth 
is flat, then your view is wronger than both of them put together."

Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer, 
14(1), 35-44. Fall 1989.
http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm




More information about the R-help mailing list