Re: [Rd] String to list and visa versa

From: Prof Brian Ripley <>
Date: Tue 14 Nov 2006 - 17:28:13 GMT

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?

On Tue, 14 Nov 2006, Vladimir Dergachev wrote:

> On Tuesday 14 November 2006 12:00 pm, Tom McCallum wrote:
>> Hi,
>> I need to collapse a list into a string and then reparse it back into the
>> list. Normally when I need to do this I simply use write.csv and
>> read.csv, but I need to do this in memory within R rather than writing out
>> to file. Are there any bespoke commands that any knows of that does
>> something like this or any tips for doing this that anyone can suggest? I
>> basically don't care upon the string representation, only that I can
>> manipulate the list as a string and then reparse it back to a valid list
>> object.

'a valid list object' or the original list object?

> #List -> string:
> #
> # Put whatever you want into collapse to separate list entries
> #
> paste(unlist(L), collapse=",")
> #String->list
> strsplit(S, ",")
> best
> Vladimir Dergachev
>> Many thanks for your help,
>> Tom

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 Nov 15 04:55:07 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 15 Nov 2006 - 06:30:53 GMT.

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