[Rd] write.csv

Duncan Murdoch murdoch.duncan at gmail.com
Tue Jul 4 14:24:16 CEST 2017


On 04/07/2017 5:40 AM, Lipatz Jean-Luc wrote:
> Hi all,
>
> I am currently studying how to generalize the usage of R in my statistical institute and I encountered a problem that I cannot declare on bugzilla (cannot understand why).

Bugzilla was badly abused by spammers last year, so you need to have 
your account created manually by one of the admins to post there.  Write 
to me privately if you'd like me to create an account for you.  (If you 
want it attached to a different email address, that's fine.)

Sorry for trying this mailing list but I am really worried about the 
problem itself and the possible implications in using R in a 
professionnal data production context.
> The issue about 'write.csv' is that it just doesn't check if there is enough space on disk and doesn't report failure to write data.
>
> Example (R 3.4.0 windows 32 bits, but I reproduced the problem with older versions and under Mac OS/X)
>
>> fwrite(as.list(1:1000000),"G:/Test")
> Error in fwrite(as.list(1:1e+06), "G:/Test") :
>   No space left on device: 'G:/Test'
>> write.csv(1:1000000,"G:/Test")
>>
>
> I have a big concern here, because it means that you could save some important data at one point of time and discover a long time after that you actually lost them.
 > I suppose that the fix is relatively straightforward, but how can we 
be sure that there is no another function with the same bad properties?

R is open source.  You could work out the patch for this bug, and in the 
process see the pattern of coding that leads to it.  Then you'll know if 
other functions use the same buggy pattern.

> Is the lesson that you should not use a R function, even from the core, without having personnally tested it against extreme conditions?

I think the answer to that is yes.  Most people never write such big 
files that they fill their disk:  if they did, all sorts of things would 
go wrong on their systems.  So this kind of extreme condition isn't 
often tested.  It's not easy to test in a platform independent way:  R 
would need to be able to create a volume with a small capacity.  That's 
a very system-dependent thing to do.

> And wouldn't it be the work of the developpers to do such elementary tests?

Again, R is open source.  You can and should contribute code (and 
therefore become one of the developers) if you are working in unusual 
conditions.

R states quite clearly in the welcome message every time it starts: "R 
is free software and comes with ABSOLUTELY NO WARRANTY."  This is 
essentially the same lack of warranty that you get with commercial 
software, though it's stated a lot more clearly.

Duncan Murdoch



More information about the R-devel mailing list