[R] Query concerning working directory for file.choose()
J C Nash
pro|jcn@@h @end|ng |rom gm@||@com
Wed Dec 18 16:32:55 CET 2024
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")
More information about the R-help
mailing list