[R] Query concerning working directory for file.choose()
peter dalgaard
pd@|gd @end|ng |rom gm@||@com
Thu Dec 19 14:32:31 CET 2024
Yes, this is different in RStudio, e.g.
I had actually forgotten how brain-dead the CLI version is:
> file.choose()
Enter file name:
(Given that install.packages() fires up a Tcl/Tk chooser, users might reasonably expect us to do something at least slightly smarter).
- Peter
> On 18 Dec 2024, at 19:39 , Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
>
> I believe file.choose() remembers the last choice, and repeats that location the next time you call it. This is true when it is called at top level or from within a function.
>
> The first time you call it in a session, it will default to the current working directory, but not after that.
>
> Front ends are allowed to replace the underlying function, so that may depend on which front end you are using. I'm talking about R.app on a Mac.
>
> Duncan Murdoch
>
> On 2024-12-18 10:32 a.m., J C Nash wrote:
>> I've been working on a small personal project that needs to select files for manipulation from
>> various directories and move them around in planned ways. file.choose() is a nice way to select
>> files. However, I've noticed that if file.choose() is called within a function, it is the
>> directory from which that calling function has been invoked that is displayed by file.choose().
>> This is not altered if I setwd() within that function. Have I misunderstood something or is this
>> an infelicity of file.choose(). sessionInfo() gives my system as
>> R version 4.4.2 (2024-10-31)
>> Platform: x86_64-pc-linux-gnu
>> Running under: Linux Mint 22
>> I've a small example script. It actually helps to create nd1 and nd2 and give them some dummy
>> files before testing.
>> Suggestions welcome.
>> John Nash
>> # fcdir.R -- show directory being used by function that calls file choose
>> cpath<-getwd()
>> nd1<-paste0(cpath,"/nd1")
>> nd2<-paste0(cpath,"/nd2")
>> dir.create(nd1)
>> dir.create(nd2)
>> myfc<-function(){
>> cat("myfc working in ",getwd(),"\n")
>> val<-file.choose()
>> val
>> }
>> myfcd<-function(adir){
>> setwd(adir)
>> cat("in myfcd, getwd() =", getwd(),"\n")
>> val<-file.choose()
>> val
>> }
>> print(getwd())
>> one<-myfc()
>> cat("one=",one,"\n")
>> setwd("nd1")
>> print(getwd())
>> two<-myfc() # This opens file.choose() in nd1
>> cat("two=",two,"\n")
>> setwd("..")
>> print(getwd())
>> three<-myfcd("nd2") # But this does not
>> cat("three=",three,"\n")
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes using cbs.dk Priv: PDalgd using gmail.com
More information about the R-help
mailing list