Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Rainer M Krug
> Sent: Thursday, January 13, 2011 7:09 AM
> To: Duncan Murdoch
> Cc: R-help
> Subject: Re: [R] Unexpected behaviour of write.csv - read.csv
>
> -----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.