From ripley at stats.ox.ac.uk  Wed Nov 15 06:00:28 2006
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Wed, 15 Nov 2006 05:00:28 +0000 (GMT)
Subject: [Rd] String to list and visa versa
In-Reply-To: <200611141646.06213.vdergachev@rcgardis.com>
References: <op.ti0mvjx2ffxks9@norisk>
	<200611141209.22173.vdergachev@rcgardis.com>
	<Pine.LNX.4.64.0611141717350.22401@gannet.stats.ox.ac.uk>
	<200611141646.06213.vdergachev@rcgardis.com>
Message-ID: <Pine.LNX.4.64.0611150458200.32548@gannet.stats.ox.ac.uk>

On Tue, 14 Nov 2006, Vladimir Dergachev wrote:

> On Tuesday 14 November 2006 12:28 pm, Prof Brian Ripley wrote:
>> This approach won't work in very many cases (but then nor will write.csv).
>>
>> The safest way I know is to use serialize() and unserialize().  Next to
>> that, deparse(control="all") and parse(text=) are quite good and give a
>> human-readable character representation.
>>
>> If fidelity is not the main issue, as.character and toString spring to
>> mind.  unlist is recursive, and is not going to come close to being
>> faithful for other than very simple lists. And what if ',' is a character
>> in one of the list elements?
>
> Yes, but then one can replace ',' with something rarely used like \007.
> I picked ',' because write.csv/read.csv worked before.

But it quotes strings ....

> You are right, for storage serialize/unserialize seem best, however for
> manipulation one would usually prefer a well-defined format.


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] String to list and visa versa
Prof Brian Ripley