[Rd] On read.csv and write.csv

John Fox j|ox @end|ng |rom mcm@@ter@c@
Fri Jul 2 00:47:09 CEST 2021


Dear Gabriel,

On 2021-07-01 6:29 p.m., Gabriel Becker wrote:
> On Thu, Jul 1, 2021 at 1:46 PM Stephen Ellison <S.Ellison using lgcgroup.com>
> wrote:
> 
>>
>> Please run the reproducible example provided.
>> When you do, you will see that write.csv writes an unnecessary empty
>> header field ("") over the row names column. This makes the number of
>> header fields equal to the number of columns _including_ row names. That
>> causes the original row names to be read as data by read.csv, following the
>> rule that the number of header fields determines whether row names are
>> present. read.csv  accordingly assumes that the former row names are
>> unnamed data, calls the unnamed row names column "X" (or X.1 etc if X
>> exists) and then adds new, default, row names _instead of the original row
>> names written by write.csv_.
>> That's not helpful.
>>
> 
> This depends on if you are reading the csv via R or something else, I would
> imagine. It not being "valid" CSV at all would likely cause some programs
> to choke entirely, I expect. I admit that's conjecture though, I don't have
> data on that one way or another.

On Excel, for example, opening a .csv file without the empty initial 
field in the first line will cause the column names to be misaligned.

As others have pointed out, .csv files are meant as a sort of 
least-common-denominator of data exchange, and so following the standard 
is probably a good idea.

Best,
  John

John Fox, Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
web: https://socialsciences.mcmaster.ca/jfox/

> 
> ~G
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list