[R] Unexpected behaviour of write.csv - read.csv

Ivan Calandra ivan.calandra at uni-hamburg.de
Thu Jan 13 15:43:45 CET 2011


Hi,

I thought this was already clear from the replies to your previous post:
- save/load
- saveObject/loadObject from R.utils
- dput/dget (I don't remember who proposed it sorry)

There might be more possibilities, but that should do what you're 
looking for. And you should already know how each of them work and 
therefore the pros and cons.

HTH,
Ivan

Le 1/13/2011 15:08, Rainer M Krug a écrit :
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 01/13/2011 02:56 PM, Duncan Murdoch wrote:
>> On 11-01-13 6:26 AM, Rainer M Krug wrote:
>> Hi
>>
>> Assuming the following:
>>
>>>>> x<- data.frame(a=1:10, b=runif(10))
>>>>> str(x)
>> 'data.frame':    10 obs. of  2 variables:
>>    $ a: int  1 2 3 4 5 6 7 8 9 10
>>    $ b: num  0.692 0.325 0.634 0.16 0.873 ...
>>>>> write.csv(x, "x.csv")
>>>>> x2<- read.csv("x.csv")
>>>>> str(x2)
>> 'data.frame':    10 obs. of  3 variables:
>>    $ X: int  1 2 3 4 5 6 7 8 9 10
>>    $ a: int  1 2 3 4 5 6 7 8 9 10
>>    $ b: num  0.692 0.325 0.634 0.16 0.873 ...
>> Using the two functions write.csv and read.csv, I would assume, that the
>> resulting data.frame x2 be identical with x, but it has an additional
>> column X, which contains the row names of x.
>>
>> I know read.table and write.table which work as expected, but I would
>> like to use a csv for data exchange reasons.
>>
>> I know that I can use
>> write.csv(x, "x.csv", row.names=FALSE)
>>
>> and it would work, but shouldn't that be the default behaviour?
>>
>>> I don't think so.  The CSV format is an export format which holds less
>>> information than a dataframe.  By exporting the dataframe to CSV and
>>> importing the result, you are discarding information and you should
>>> expect to get something different.
> OK - I can follow this logic - and I think I can accept it.
>
>>> If you want to save a dataframe to disk and read it back unchanged, you
>>> should use save() and load().
> And now my question from a previous thread (write.table equivalent for
> lists?) comes up again:
>
> using save() and load() definitely works, but it is highly unsave - as
> it even keeps the names of the object, more then one can be saved, I can
> not easily assign the saved object to a new name, I have problems using
> the saved object if I have forgotten what the variable name was.
>
> So I would like to expand my previous question: what are the proper
> functions to store R objects? One could argue that all write...
> functions are export functions - therefore keeping the data, but not
> necessarily column names, rownames, attributes, ...
>
> So what can I really do to save an R object for later usage in R?
>
> Rainer
>
>>> Duncan Murdoch
>>
>> And if this is not compliant with csv files, shouldn't the function
>> read.csv convert the first column into the row names?
>>
>> Cheers,
>>
>> Rainer
>>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
> - -- 
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
> Biology, UCT), Dipl. Phys. (Germany)
>
> Centre of Excellence for Invasion Biology
> Natural Sciences Building
> Office Suite 2039
> Stellenbosch University
> Main Campus, Merriman Avenue
> Stellenbosch
> South Africa
>
> Tel:        +33 - (0)9 53 10 27 44
> Cell:       +27 - (0)8 39 47 90 42
> Fax (SA):   +27 - (0)8 65 16 27 82
> Fax (D) :   +49 - (0)3 21 21 25 22 44
> Fax (FR):   +33 - (0)9 58 10 27 44
> email:      Rainer at krugs.de
>
> Skype:      RMkrug
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAk0vB2oACgkQoYgNqgF2egqenQCeJJNdIiX2faKBPGeilzOz73wM
> RmoAn05oGZvo41wCp1+hWwTqTmNoQrNo
> =xfWD
> -----END PGP SIGNATURE-----
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra at uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php



More information about the R-help mailing list