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

Rainer M Krug r.m.krug at gmail.com
Thu Jan 13 12:26:55 CET 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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?

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

- -- 
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/

iEYEARECAAYFAk0u4X8ACgkQoYgNqgF2egrLIgCeIqAevHGcOAK56qPcpNJ+vWav
iF0An2pk1RsY1GLJbvdMHG7FFpx437gB
=d5aG
-----END PGP SIGNATURE-----



More information about the R-help mailing list