On 5/10/2006 10:45 AM, Gabor Grothendieck wrote: > On 5/10/06, Duncan Murdoch <[EMAIL PROTECTED]> wrote: >> On 5/10/2006 9:29 AM, Paul Johnson wrote: >> > It is a FAQ in our Linux lab. People start emacs and fire up R via >> > ess, and then they have no idea 'where they are". For computer >> > experts, it is not a problem, but for people who don't know much about >> > computers, it is a pretty big problem. They have data in some >> > subdirectory, but almost invariably they don't get emacs & R started >> > from that same place. >> > >> > Unfortunately, for our users, it does not help to simply re-label >> > setwd as cd. Both commands imply a deeper understanding of the OS >> > than they have. Also, unfortunately, these are the same people who >> > don't understand that FAQs exist and should be consulted. These people >> > are so new/timid that asking in r-help would be the last thing to >> > cross their mind. >> > >> > I've wondered if it would not help to have the R prompt include the >> > directory name, as in an x terminal. >> >> I think file system directories aren't as central in R as they are in a >> shell, so it would just be distracting. Most of the time I work in the >> R workspace, not in the file system. >> >> To me the solution is to allow interactive file selection by default, >> i.e. the default on read.table and similar functions should be >> file.choose(), rather than having no default and throwing an error. >> This won't help you in the short run (because file.choose() on Linux >> isn't all that friendly to beginners), but perhaps it would encourage >> someone to make it better. file.choose() is quite nice in Windows (and >> I think on the Mac), so beginners there could be told >> >> mydf <- read.table() >> >> and they'd get something useful. >> >> Martin Maechler has disagreed with me about this in the past, but hasn't >> convinced me that he's right, he's just convinced me that doing nothing >> is easier than arguing about it. > > I agree with Martin regarding read.table; however, the underlying idea is > good and could be achieved via simple wrappers which are the same > as the corresponding underlying functions except for the default argument > to file: > > read.table.choose <- function(file = file.choose(), ...) > read.table(file, ...) > read.csv.choose <- function(file = file.choose(), ...) read.csv(file, ...) > read.delim.choose <- function(file = file.choose(), ...) > read.delim(file, ...) > > # test > mydata <- read.table.choose() > > in a package available to the users or possibly even in R core.
No, I don't think this is a good idea. It would be just as easy to tell people to type read.table(file=file.choose()) with no new package or function necessary. I want the existing basic function to work when used by a beginner in a simple way. What is it that you find objectionable about having a default for the file argument in read.table? I think Martin has said that he doesn't want non-UI functions to be involved with UI functions, but I don't see that: if your code works now, it will be completely unaffected by setting a default for the argument. (Sorry if I summarized the argument incorrectly, Martin, I didn't look it up.) Duncan Murdoch ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
