> Again, you seem to think making a package is a big deal.Perhaps not a big deal (I believe you, I didn't write an R package yet), but not as straightforward as having a function within an R file returning its own path.> But you're free to decide not to do it: just please don't repeat false claims about R (like the ones about paths that started this long thread).Which false claims? ________________________________ De : Duncan Murdoch <murdoch.duncan at gmail.com> Envoy? : mercredi 10 octobre 2018 22:31 ? : Olivier GIVAUDAN; Jeff Newmiller Cc : r-help at r-project.org Objet : Re: [R] Genuine relative paths with R On 10/10/2018 6:17 PM, Olivier GIVAUDAN wrote:>> Nothing says a package has to go on CRAN. You can distribute > themprivately to a small audience. > > Yes, I agree in theory. But this solution still violates my own > proportionality principle.Again, you seem to think making a package is a big deal. Maybe that was true 10 years ago (though I wrote and tested a package in a 45 minute presentation at UseR 2008), but now it's very easy. But you're free to decide not to do it: just please don't repeat false claims about R (like the ones about paths that started this long thread).> >> If you know as much about R as the people who wrote it > > I didn't claim that (that's was a quite general / theoretical statement, > not necessarily and only applicable to R).I didn't say you made that claim. I was answering your question about why inventing your own way is not a good idea. It might be a good idea, if you know the system very, very well. Otherwise, it's probably better to work the standard way. Duncan Murdoch> >> For example, you might thinkthat all front ends set the working > directory to the directory of theprogram they are running, because the > ones you've tried do it that way. But they don't. >> GUIs. So the workaround I finally found satisfies my current needs > ------------------------------------------------------------------------ > *De :* Duncan Murdoch <murdoch.duncan at gmail.com> > *Envoy? :* mercredi 10 octobre 2018 22:07 > *? :* Olivier GIVAUDAN; Jeff Newmiller > *Cc :* r-help at r-project.org > *Objet :* Re: [R] Genuine relative paths with R > On 10/10/2018 5:45 PM, Olivier GIVAUDAN wrote: >> I'm not sure I'm "inventing my own way" of distributing R code... And I >> distribute it to a very limited audience. > > Nothing says a package has to go on CRAN. You can distribute them > privately to a small audience. > >> Anyway, why not "inventing a new way" if it's more efficient than the >> standard one (I'm talking now in theory)? > > If you know as much about R as the people who wrote it, then you can > almost certainly invent better ways to do many of the things it does. R > Core was constrained by trying to maintain back compatibility, and that > means some of their solutions aren't perfect. > > But if you don't know it that well, chances are you'll make mistakes > when you invent your own way of doing it. For example, you might think > that all front ends set the working directory to the directory of the > program they are running, because the ones you've tried do it that way. > But they don't. > > Duncan Murdoch > >> ------------------------------------------------------------------------ >> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >> *Envoy? :* mercredi 10 octobre 2018 21:39 >> *? :* Olivier GIVAUDAN; Jeff Newmiller >> *Cc :* r-help at r-project.org >> *Objet :* Re: [R] Genuine relative paths with R >> On 10/10/2018 5:31 PM, Olivier GIVAUDAN wrote: >>> I do not want to use the terminal, just double clicks (i.e. the >>> simplest, automatic, non-manual way, without having to write a line / >>> command). >>> Therefore everything should happen outside any terminal. The user won't >>> use a terminal. >>> >>> I don't have a Mac and I'm not familiar with this OS, sorry. >>> But I'm really surprised the click method gives different results than>>> I know the click method worked both on Linux (Ubuntu latest version) and>>> >>> Yes, I executed my file from a terminal and got obviously the same >>> result as you (that's reassuring). >>> >>> Come on guys, creating a package... It's like using a hammer to kill a >>> fly... >> >> It's a simple operation to create a package in RStudio. Not quite a >> single click, but just a few. >> >> In plain R, it's just a little more work using package.skeleton(). >> >> Really, if you are distributing R code, you should do it in the standard >> way, not invent your own. >> >> Duncan Murdoch >> >>> ------------------------------------------------------------------------ >>> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >>> *Envoy? :* mercredi 10 octobre 2018 20:54 >>> *? :* Olivier GIVAUDAN; Jeff Newmiller >>> *Cc :* r-help at r-project.org >>> *Objet :* Re: [R] Genuine relative paths with R >>> On 10/10/2018 4:42 PM, Olivier GIVAUDAN wrote: >>>> Why are you not simply double-clicking on 'TestPWD' and choosing to >>>> execute the file (don't add anything)? >>>> Are you executing the file from a terminal? >>> >>> Yes, I was executing the file from my terminal. Otherwise I really have >>> no idea what the "current directory" is in the Finder. (I'm on a Mac. >>> I just tried the click method; it printed my home directory, not the >>> directory of the script.) >>> >>> I don't know the name of your visual front end, but you are displaying >>> the working directory that it sets when you click on TestPWD. That will >>> be different from the working directory that your user sees in the Terminal. >>> >>> You can see what I saw if you run TestPWD from the Terminal. It will >>> print the current working directory, not the one where TestPWD happens >>> to live. >>> >>> If you want to do the same sort of thing in R, you could set up a script >>> that calls R, and execute that in the way you executed TestPWD. But in >>> another message you said you aren't allowed to do that, so I think your >>> best solution is the one offered by Bill Dunlap: organize your files as >>> an R package. If you name your package "Olivier", then you can find all >>> the files in it under the directory returned by >>> >>> system.file(".", package = "Olivier") >>> >>> The package system is designed for R code, but you can put arbitrary >>> files into a package: just store them under the "inst" directory in >>> your source. When the package is installed, those files will be moved >>> up one level, i.e. >>> >>> Olivier/inst/foo >>> >>> will become >>> >>> system.file("foo", package = "Olivier") >>> >>> Duncan Murdoch >> >[[alternative HTML version deleted]]
On 10/10/2018 6:52 PM, Olivier GIVAUDAN wrote:>> Again, you seem to think making a package is a big deal. > > Perhaps not a big deal (I believe you, I didn't write an R package yet), > but not as straightforward as having a function within an R file > returning its own path. > >> But you're free to decide not to do it:? just please don't repeat > falseclaims about R (like the ones about paths that started this long > thread). > > Which false claims?"But I am really wondering why R doesn't have (please tell me if I'm wrong) this basic feature as many other languages have it (batch, shell, C, LaTeX, SAS with macro-variables, etc.)?" Duncan Murdoch> ------------------------------------------------------------------------ > *De :* Duncan Murdoch <murdoch.duncan at gmail.com> > *Envoy? :* mercredi 10 octobre 2018 22:31 > *? :* Olivier GIVAUDAN; Jeff Newmiller > *Cc?:* r-help at r-project.org > *Objet :* Re: [R] Genuine relative paths with R > On 10/10/2018 6:17 PM, Olivier GIVAUDAN wrote: >>> Nothing says a package has to go on CRAN.? You can distribute >> themprivately to a small audience. >> >> Yes, I agree in theory. But this solution still violates my own >> proportionality principle. > > Again, you seem to think making a package is a big deal.? Maybe that was > true 10 years ago (though I wrote and tested a package in a 45 minute > presentation at UseR 2008), but now it's very easy. > > But you're free to decide not to do it:? just please don't repeat false > claims about R (like the ones about paths that started this long thread). > >> >>> If you know as much about R as the people who wrote it >> >> I didn't claim that (that's was a quite general / theoretical statement, >> not necessarily and only applicable to R). > > I didn't say you made that claim.? I was answering your question about > why inventing your own way is not a good idea.? It might be a good idea, > if you know the system very, very well.? Otherwise, it's probably better > to work the standard way. > > Duncan Murdoch > >> >>> For example, you might thinkthat all front ends set the working >> directory to the directory of theprogram they are running, because the >> ones you've tried do it that way. But they don't. >> >> It runs that way at least on Windows with RStudio and R GUI and I know >> the recipients of my R code work on Windows with at least one of these 2 >> GUIs. So the workaround I finally found satisfies my current needs >> ------------------------------------------------------------------------ >> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >> *Envoy? :* mercredi 10 octobre 2018 22:07 >> *? :* Olivier GIVAUDAN; Jeff Newmiller >> *Cc?:* r-help at r-project.org >> *Objet :* Re: [R] Genuine relative paths with R >> On 10/10/2018 5:45 PM, Olivier GIVAUDAN wrote: >>> I'm not sure I'm "inventing my own way" of distributing R code... And I >>> distribute it to a very limited audience. >> >> Nothing says a package has to go on CRAN.? You can distribute them >> privately to a small audience. >> >>> Anyway, why not "inventing a new way" if it's more efficient than the >>> standard one (I'm talking now in theory)? >> >> If you know as much about R as the people who wrote it, then you can >> almost certainly invent better ways to do many of the things it does.? R >> Core was constrained by trying to maintain back compatibility, and that >> means some of their solutions aren't perfect. >> >> But if you don't know it that well, chances are you'll make mistakes >> when you invent your own way of doing it.? For example, you might think >> that all front ends set the working directory to the directory of the >> program they are running, because the ones you've tried do it that way. >> But they don't. >> >> Duncan Murdoch >> >>> ------------------------------------------------------------------------ >>> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >>> *Envoy? :* mercredi 10 octobre 2018 21:39 >>> *? :* Olivier GIVAUDAN; Jeff Newmiller >>> *Cc?:* r-help at r-project.org >>> *Objet :* Re: [R] Genuine relative paths with R >>> On 10/10/2018 5:31 PM, Olivier GIVAUDAN wrote: >>>> I do not want to use the terminal, just double clicks (i.e. the >>>> simplest, automatic, non-manual way, without having to write a line / >>>> command). >>>> Therefore everything should happen outside any terminal. The user won't >>>> use a terminal. >>>> >>>> I don't have a Mac and I'm not familiar with this OS, sorry. >>>> But I'm really surprised the click method gives different results than >>>> on Linux and Windows. >>>> I know the click method worked both on Linux (Ubuntu latest version) and >>>> Windows (10). >>>> >>>> Yes, I executed my file from a terminal and got obviously the same >>>> result as you (that's reassuring). >>>> >>>> Come on guys, creating a package... It's like using a hammer to kill a >>>> fly... >>> >>> It's a simple operation to create a package in RStudio.? Not quite a >>> single click, but just a few. >>> >>> In plain R, it's just a little more work using package.skeleton(). >>> >>> Really, if you are distributing R code, you should do it in the standard >>> way, not invent your own. >>> >>> Duncan Murdoch >>> >>>> ------------------------------------------------------------------------ >>>> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >>>> *Envoy? :* mercredi 10 octobre 2018 20:54 >>>> *? :* Olivier GIVAUDAN; Jeff Newmiller >>>> *Cc?:* r-help at r-project.org >>>> *Objet :* Re: [R] Genuine relative paths with R >>>> On 10/10/2018 4:42 PM, Olivier GIVAUDAN wrote: >>>>> Why are you not simply double-clicking on 'TestPWD' and choosing to >>>>> execute the file (don't add anything)? >>>>> Are you executing the file from a terminal? >>>> >>>> Yes, I was executing the file from my terminal.? Otherwise I really have >>>> no idea what the "current directory" is in the Finder.?? (I'm on a Mac. >>>> I just tried the click method; it printed my home directory, not the >>>> directory of the script.) >>>> >>>> I don't know the name of your visual front end, but you are displaying >>>> the working directory that it sets when you click on TestPWD.? That will >>>> be different from the working directory that your user sees in the Terminal. >>>> >>>> You can see what I saw if you run TestPWD from the Terminal.? It will >>>> print the current working directory, not the one where TestPWD happens >>>> to live. >>>> >>>> If you want to do the same sort of thing in R, you could set up a script >>>> that calls R, and execute that in the way you executed TestPWD.? But in >>>> another message you said you aren't allowed to do that, so I think your >>>> best solution is the one offered by Bill Dunlap:? organize your files as >>>> an R package.? If you name your package "Olivier", then you can find all >>>> the files in it under the directory returned by >>>> >>>>? ?? system.file(".", package = "Olivier") >>>> >>>> The package system is designed for R code, but you can put arbitrary >>>> files into a package:? just store them under the "inst" directory in >>>> your source.? When the package is installed, those files will be moved >>>> up one level, i.e. >>>> >>>> Olivier/inst/foo >>>> >>>> will become >>>> >>>>? ?? system.file("foo", package = "Olivier") >>>> >>>> Duncan Murdoch >>> >> >
It is not wrong to claim that R currently doesn't have a function returning the path of the R file where this same function was invoked. 'getwd()' is indeed not equivalent to VBA 'Application.ThisWorkbook.Path' or C macro '__FILE__' or SAS %sysget(SAS_EXECFILENAME), etc. ________________________________ De : Duncan Murdoch <murdoch.duncan at gmail.com> Envoy? : mercredi 10 octobre 2018 22:59 ? : Olivier GIVAUDAN; Jeff Newmiller Cc : r-help at r-project.org Objet : Re: [R] Genuine relative paths with R On 10/10/2018 6:52 PM, Olivier GIVAUDAN wrote:>> Again, you seem to think making a package is a big deal. > > Perhaps not a big deal (I believe you, I didn't write an R package yet), > but not as straightforward as having a function within an R file > returning its own path. > >> But you're free to decide not to do it: just please don't repeat > falseclaims about R (like the ones about paths that started this long > thread). > > Which false claims?"But I am really wondering why R doesn't have (please tell me if I'm wrong) this basic feature as many other languages have it (batch, shell, C, LaTeX, SAS with macro-variables, etc.)?" Duncan Murdoch> ------------------------------------------------------------------------ > *De :* Duncan Murdoch <murdoch.duncan at gmail.com> > *Envoy? :* mercredi 10 octobre 2018 22:31 > *? :* Olivier GIVAUDAN; Jeff Newmiller > *Cc :* r-help at r-project.org > *Objet :* Re: [R] Genuine relative paths with R > On 10/10/2018 6:17 PM, Olivier GIVAUDAN wrote: >>> Nothing says a package has to go on CRAN. You can distribute >> themprivately to a small audience. >> >> Yes, I agree in theory. But this solution still violates my own >> proportionality principle. > > Again, you seem to think making a package is a big deal. Maybe that was > true 10 years ago (though I wrote and tested a package in a 45 minute > presentation at UseR 2008), but now it's very easy. > > But you're free to decide not to do it: just please don't repeat false > claims about R (like the ones about paths that started this long thread). > >> >>> If you know as much about R as the people who wrote it >> >> I didn't claim that (that's was a quite general / theoretical statement, >> not necessarily and only applicable to R). > > I didn't say you made that claim. I was answering your question about > why inventing your own way is not a good idea. It might be a good idea, > if you know the system very, very well. Otherwise, it's probably better > to work the standard way. > > Duncan Murdoch > >> >>> For example, you might thinkthat all front ends set the working >> directory to the directory of theprogram they are running, because the >> ones you've tried do it that way. But they don't. >>>> GUIs. So the workaround I finally found satisfies my current needs >> ------------------------------------------------------------------------ >> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >> *Envoy? :* mercredi 10 octobre 2018 22:07 >> *? :* Olivier GIVAUDAN; Jeff Newmiller >> *Cc :* r-help at r-project.org >> *Objet :* Re: [R] Genuine relative paths with R >> On 10/10/2018 5:45 PM, Olivier GIVAUDAN wrote: >>> I'm not sure I'm "inventing my own way" of distributing R code... And I >>> distribute it to a very limited audience. >> >> Nothing says a package has to go on CRAN. You can distribute them >> privately to a small audience. >> >>> Anyway, why not "inventing a new way" if it's more efficient than the >>> standard one (I'm talking now in theory)? >> >> If you know as much about R as the people who wrote it, then you can >> almost certainly invent better ways to do many of the things it does. R >> Core was constrained by trying to maintain back compatibility, and that >> means some of their solutions aren't perfect. >> >> But if you don't know it that well, chances are you'll make mistakes >> when you invent your own way of doing it. For example, you might think >> that all front ends set the working directory to the directory of the >> program they are running, because the ones you've tried do it that way. >> But they don't. >> >> Duncan Murdoch >> >>> ------------------------------------------------------------------------ >>> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >>> *Envoy? :* mercredi 10 octobre 2018 21:39 >>> *? :* Olivier GIVAUDAN; Jeff Newmiller >>> *Cc :* r-help at r-project.org >>> *Objet :* Re: [R] Genuine relative paths with R >>> On 10/10/2018 5:31 PM, Olivier GIVAUDAN wrote: >>>> I do not want to use the terminal, just double clicks (i.e. the >>>> simplest, automatic, non-manual way, without having to write a line / >>>> command). >>>> Therefore everything should happen outside any terminal. The user won't >>>> use a terminal. >>>> >>>> I don't have a Mac and I'm not familiar with this OS, sorry. >>>> But I'm really surprised the click method gives different results than>>>> I know the click method worked both on Linux (Ubuntu latest version) and>>>> >>>> Yes, I executed my file from a terminal and got obviously the same >>>> result as you (that's reassuring). >>>> >>>> Come on guys, creating a package... It's like using a hammer to kill a >>>> fly... >>> >>> It's a simple operation to create a package in RStudio. Not quite a >>> single click, but just a few. >>> >>> In plain R, it's just a little more work using package.skeleton(). >>> >>> Really, if you are distributing R code, you should do it in the standard >>> way, not invent your own. >>> >>> Duncan Murdoch >>> >>>> ------------------------------------------------------------------------ >>>> *De :* Duncan Murdoch <murdoch.duncan at gmail.com> >>>> *Envoy? :* mercredi 10 octobre 2018 20:54 >>>> *? :* Olivier GIVAUDAN; Jeff Newmiller >>>> *Cc :* r-help at r-project.org >>>> *Objet :* Re: [R] Genuine relative paths with R >>>> On 10/10/2018 4:42 PM, Olivier GIVAUDAN wrote: >>>>> Why are you not simply double-clicking on 'TestPWD' and choosing to >>>>> execute the file (don't add anything)? >>>>> Are you executing the file from a terminal? >>>> >>>> Yes, I was executing the file from my terminal. Otherwise I really have >>>> no idea what the "current directory" is in the Finder. (I'm on a Mac. >>>> I just tried the click method; it printed my home directory, not the >>>> directory of the script.) >>>> >>>> I don't know the name of your visual front end, but you are displaying >>>> the working directory that it sets when you click on TestPWD. That will >>>> be different from the working directory that your user sees in the Terminal. >>>> >>>> You can see what I saw if you run TestPWD from the Terminal. It will >>>> print the current working directory, not the one where TestPWD happens >>>> to live. >>>> >>>> If you want to do the same sort of thing in R, you could set up a script >>>> that calls R, and execute that in the way you executed TestPWD. But in >>>> another message you said you aren't allowed to do that, so I think your >>>> best solution is the one offered by Bill Dunlap: organize your files as >>>> an R package. If you name your package "Olivier", then you can find all >>>> the files in it under the directory returned by >>>> >>>> system.file(".", package = "Olivier") >>>> >>>> The package system is designed for R code, but you can put arbitrary >>>> files into a package: just store them under the "inst" directory in >>>> your source. When the package is installed, those files will be moved >>>> up one level, i.e. >>>> >>>> Olivier/inst/foo >>>> >>>> will become >>>> >>>> system.file("foo", package = "Olivier") >>>> >>>> Duncan Murdoch >>> >> >[[alternative HTML version deleted]]