Re: [Rd] Lack of final newline in write.dcf changes append usage

From: Prof Brian Ripley <>
Date: Wed, 26 Sep 2007 19:50:05 +0100 (BST)

On Wed, 26 Sep 2007, Roger Peng wrote:

> The change in r42731 eliminating the final blank line when writing DCF
> files changes the way 'append' can be used in 'write.dcf' and I was
> wondering if this is intentional. Basically, I want to write a data

Yes, it is intentional. That a blank line got written after a single record (only) was regarded as unintentional: blank lines are (I was told) record separators and not terminators.

> frame to DCF format one row at a time, so I make use of repeated calls
> to 'write.dcf(append = TRUE)'. However, in R 2.6.0RC the resulting DCF
> file is not formatted properly because there are no blank lines
> between the entries.

tools::write_PACKAGES had that problem. But surely it is better to keep a connection open and make repeated calls to write.dcf on it (as write_PACKAGES does). I don't think writing record separators explicitly is much of a hardship.

> It seems the only way to use 'write.dcf(append = TRUE)' is to
> explicitly write a blank line to the file before writing the entry.

or after an entry.

> Perhaps 'write.dcf' could be changed to write a blank line in the
> beginning if append = TRUE? I've attached a patch for this
> possibility.

Not in code freeze, and in any case it does not address what for me is the natural usage.

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list
Received on Wed 26 Sep 2007 - 18:55:12 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 26 Sep 2007 - 22:42:20 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.