> Nothing says a package has to go on CRAN. You can distribute them privately to a small audience.Yes, I agree in theory. But this solution still violates my own proportionality principle.> If you know as much about R as the people who wrote itI didn't claim that (that's was a quite general / theoretical statement, not necessarily and only applicable to R).> 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.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>> 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: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 >> >
> 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]]