[Rd] [R] help with read.table() function

Gabor Grothendieck ggrothendieck at gmail.com
Mon Jan 30 01:28:50 CET 2006


On 1/29/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> On 1/29/2006 5:20 PM, Gabor Grothendieck wrote:
> > On 1/29/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> >> On 1/29/2006 1:24 PM, Gabor Grothendieck wrote:
> >>  > Normally one expects stdin to be the default on command line
> >>  > programs and something like file.choose to be the default on GUI
> >>  > programs and this would break that expectation.
> >>
> >> We don't currently meet that expectation, so I don't think it would make
> >> things any worse.  As I mentioned to Brian, I wouldn't change the
> >
> > II don't think you understood my point.  This is how most software works,
> > IN GENERAL, so R should be expected to work that way
> > too.
>
> I think I understood that, but my point is that R doesn't act that way
> now, and this change won't make the situation worse.
>
>  >I don't think not having a default is so bad but having the wrong
> > default that breaks the stereotype that one expects in all software
> > is bad.
>
> I don't follow your argument.  Why is it better to say
>
> Error in read.table() : argument "file" is missing, with no default

Because that does not mix conventions.

>
> than it would be to ask the user which file to read?  The first is
> unexpected in both of the situations you described, while the second is
> only unexpected in a command line program.

Because its conventional that stdin is the default.  Even in R someone
must have realized that since that is the default for scan.


>
> Consistency is a good thing, but there are a number of choices of what
> to be consistent with:
>
>  - other similar functions in R (but they are inconsistent)
>  - previous versions of R (which is why I wouldn't change scan())
>  - other software a user would be familiar with (which is why
> file.choose() is a good idea in a GUI, but not in a command line program).
>
> > What could be done is to add something about file.choose to the
> > error message that one gets when one does read.table("myfile")
> > and it can't find "myfile".
>
> Currently our error messages explain what went wrong, they generally
> don't try to suggest alternative approaches (though a few do, e.g.
> help("dfdsfs")).  There are a lot of reasons read.table() could fail,
> and I think it would be very hard to get a good automatic rule on when
> file.choose() was the appropriate alternative.

I wasn't suggesting an automatic solution but I think it could be helpful
if the error message pointed out the existence of file.choose.



More information about the R-devel mailing list