String to list and visa versa
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