Re: [R] File Save As...
as of right now x = function(a) print(a) attr(x, srcref) returns NULL in 2.13, am I doing something wrong? (also, should I post this to a new thread, or the development thread?) About me: I like long walks on the beach, and this is my current version of R: t(as.data.frame(R.Version())) [,1] platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status RC major 2 minor 13.0 year 2011 month 04 day11 svn.rev55409 language R version.string R version 2.13.0 RC (2011-04-11 r55409) On Wed, Mar 16, 2011 at 2:44 PM, Gene Leynes gleyne...@gmail.com wrote: Thanks for showing me the link to the code / your response / your work in general. It seems that the real magic is happening in the call to the function attributes, via the line attr(x, srcref) I'm guessing that attributes must be defined somewhere deep inside the R machinery (since I didn't find it as a file in base)... And there's probably not much benefit for me to know more beyond that. So, I'll be looking forward to 2.13! On Tue, Mar 15, 2011 at 3:37 PM, Duncan Murdoch murdoch.dun...@gmail.comwrote: On 15/03/2011 2:56 PM, Gene Leynes wrote: The getSrcFilename function is exactly what I was trying to describe, and I'm excited to know that it's on it way! I have tried to create that type of function, but I didn't think it was possible with currently available functions. I would be interested in seeing how the new function works, maybe I'll check it out using the google code search tool http://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search (although I usually have a hard time making sense of that code). The source is available in https://svn.r-project.org/R/trunk/src/library/utils/R/sourceutils.R Duncan Murdoch Please let me briefly clarify this part: But it can. If you open a script and choose save, it will be saved to the same place. I just mean that when you do save as... R doesn't seem to use the same information that it uses during a normal save (the directory or script name). In other applications like Microsoft Word, or Python's IDLE (screen shot attached) the user is shown a dialogue box with the file name in the current directory of that file. This is a very minor annoyance though. I only brought it up because I thought it would be easier to explain than asking about a function that would do the job of getSrcFilename, which is really what I was after. I rarely upgrade my R versions, but this will definitely be an occasion when I do! This makes me want to go back and look at the past release notes to see what other goodies I've been overlooking. Thanks again, Gene On Mon, Mar 14, 2011 at 8:17 PM, Duncan Murdochmurdoch.dun...@gmail.com wrote: On 11-03-14 8:12 PM, Gene Leynes wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Duncan Murdoch Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.commailto:murdoch.dun...@gmail.com wrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I
Re: [R] File Save As...
On 13/04/2011 5:20 PM, Gene Leynes wrote: as of right now x = function(a) print(a) attr(x, srcref) returns NULL in 2.13, am I doing something wrong? There's a limitation to the debug information: it can't be attached to a function whose body consists of a single simple expression like print(a). If you put braces around print(a), it will be attached to the body of x: Put this line into a file, and source it: x - function(a) { print(a) } source(test.R) attr(body(x), srcref) In case you're interested, the reason for this limitation is that there are some objects in R (NULL is the most obvious one) which can be a function body but which can't hold attributes. At the time the debug info is added, the function hasn't been created, but its body has, so the attribute has to go there. Duncan Murdoch (also, should I post this to a new thread, or the development thread?) About me: I like long walks on the beach, and this is my current version of R: t(as.data.frame(R.Version())) [,1] platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status RC major 2 minor 13.0 year 2011 month 04 day 11 svn.rev 55409 language R version.string R version 2.13.0 RC (2011-04-11 r55409) On Wed, Mar 16, 2011 at 2:44 PM, Gene Leynes gleyne...@gmail.com mailto:gleynes%...@gmail.com wrote: Thanks for showing me the link to the code / your response / your work in general. It seems that the real magic is happening in the call to the function attributes, via the line attr(x, srcref) I'm guessing that attributes must be defined somewhere deep inside the R machinery (since I didn't find it as a file in base)... And there's probably not much benefit for me to know more beyond that. So, I'll be looking forward to 2.13! On Tue, Mar 15, 2011 at 3:37 PM, Duncan Murdoch murdoch.dun...@gmail.com mailto:murdoch.dun...@gmail.com wrote: On 15/03/2011 2:56 PM, Gene Leynes wrote: The getSrcFilename function is exactly what I was trying to describe, and I'm excited to know that it's on it way! I have tried to create that type of function, but I didn't think it was possible with currently available functions. I would be interested in seeing how the new function works, maybe I'll check it out using the google code search toolhttp://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search http://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search(although I usually have a hard time making sense of that code). The source is available in https://svn.r-project.org/R/trunk/src/library/utils/R/sourceutils.R Duncan Murdoch Please let me briefly clarify this part: But it can. If you open a script and choose save, it will be saved to the same place. I just mean that when you do save as... R doesn't seem to use the same information that it uses during a normal save (the directory or script name). In other applications like Microsoft Word, or Python's IDLE (screen shot attached) the user is shown a dialogue box with the file name in the current directory of that file. This is a very minor annoyance though. I only brought it up because I thought it would be easier to explain than asking about a function that would do the job of getSrcFilename, which is really what I was after. I rarely upgrade my R versions, but this will definitely be an occasion when I do! This makes me want to go back and look at the past release notes to see what other goodies I've been overlooking. Thanks again, Gene On Mon, Mar 14, 2011 at 8:17 PM, Duncan Murdochmurdoch.dun...@gmail.com mailto:murdoch.dun...@gmail.comwrote: On 11-03-14 8:12 PM, Gene Leynes wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this:
Re: [R] File Save As...
That's very interesting. It's not what I was thinking about or expecting, but I'm glad to know about it (and it will probably be useful at some point). Initially, I was asking for a method to find out the name of the current script. I mean, the current script that you're editing / running. However, this is useful. Just by putting a few lines of code, you can change the working directory with a simple drag and drop. Put the following lines into a script, and drop it into the R GUI. curpath = dirname(getSrcFilename(function(){}, full=TRUE)) setwd(curpath) cat('Now in ', curpath, '\n') What I was looking for is almost accomplished by this: filepath = getSrcFilename(function(){}, full=TRUE) setwd(dirname(filepath)) browser() Of course, you wouldn't want to stay in browser mode forever... It would be nice to get the name of your current script with something like this.file(). Of course, I don't know how that would work if someone typed it into the console. I'm genuinely excited to explore the new updates in 2.13. Either it's a good update, or I'm just now learning enough to appreciate the updates. Thanks Gene On Wed, Apr 13, 2011 at 4:33 PM, Duncan Murdoch murdoch.dun...@gmail.comwrote: On 13/04/2011 5:20 PM, Gene Leynes wrote: as of right now x = function(a) print(a) attr(x, srcref) returns NULL in 2.13, am I doing something wrong? There's a limitation to the debug information: it can't be attached to a function whose body consists of a single simple expression like print(a). If you put braces around print(a), it will be attached to the body of x: Put this line into a file, and source it: x - function(a) { print(a) } source(test.R) attr(body(x), srcref) In case you're interested, the reason for this limitation is that there are some objects in R (NULL is the most obvious one) which can be a function body but which can't hold attributes. At the time the debug info is added, the function hasn't been created, but its body has, so the attribute has to go there. Duncan Murdoch (also, should I post this to a new thread, or the development thread?) About me: I like long walks on the beach, and this is my current version of R: t(as.data.frame(R.Version())) [,1] platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status RC major 2 minor 13.0 year 2011 month 04 day 11 svn.rev 55409 language R version.string R version 2.13.0 RC (2011-04-11 r55409) On Wed, Mar 16, 2011 at 2:44 PM, Gene Leynes gleyne...@gmail.com mailto:gleynes%...@gmail.com wrote: Thanks for showing me the link to the code / your response / your work in general. It seems that the real magic is happening in the call to the function attributes, via the line attr(x, srcref) I'm guessing that attributes must be defined somewhere deep inside the R machinery (since I didn't find it as a file in base)... And there's probably not much benefit for me to know more beyond that. So, I'll be looking forward to 2.13! On Tue, Mar 15, 2011 at 3:37 PM, Duncan Murdoch murdoch.dun...@gmail.com mailto:murdoch.dun...@gmail.com wrote: On 15/03/2011 2:56 PM, Gene Leynes wrote: The getSrcFilename function is exactly what I was trying to describe, and I'm excited to know that it's on it way! I have tried to create that type of function, but I didn't think it was possible with currently available functions. I would be interested in seeing how the new function works, maybe I'll check it out using the google code search tool http://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search http://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search (although I usually have a hard time making sense of that code). The source is available in https://svn.r-project.org/R/trunk/src/library/utils/R/sourceutils.R Duncan Murdoch Please let me briefly clarify this part: But it can. If you open a script and choose save, it will be saved to the same place. I just mean that when you do save as... R doesn't seem to use the same information that it uses during a normal save (the directory or script name). In other applications like Microsoft Word, or Python's IDLE (screen shot attached) the user is shown a dialogue box with the file name in the current directory of that file. This is a very minor annoyance though. I only brought it up because I thought it would be easier to explain than asking about a function that would do the job of getSrcFilename, which is really what I
Re: [R] File Save As...
No, defaults are evaluated in the evaluation frame of the function. That's why you can use local variables in them, e.g. the way rgamma uses 1/rate as a default for scale. Oops, yes, I was getting confused with promises - non-missing arguments are promises evaluated in the parent frame. But the point isn't evaluation here: the point is the parsing. A function gets its source attribute when it is parsed, so getSrcFilename needs to be passed something that was parsed in the script. Still, it would be nice to have a function that, by default, would return the location of the calling script. You can also hack something together using sys.frames(), but it would be nice to have official R support for it. Hadley -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/ __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
Thanks for showing me the link to the code / your response / your work in general. It seems that the real magic is happening in the call to the function attributes, via the line attr(x, srcref) I'm guessing that attributes must be defined somewhere deep inside the R machinery (since I didn't find it as a file in base)... And there's probably not much benefit for me to know more beyond that. So, I'll be looking forward to 2.13! On Tue, Mar 15, 2011 at 3:37 PM, Duncan Murdoch murdoch.dun...@gmail.comwrote: On 15/03/2011 2:56 PM, Gene Leynes wrote: The getSrcFilename function is exactly what I was trying to describe, and I'm excited to know that it's on it way! I have tried to create that type of function, but I didn't think it was possible with currently available functions. I would be interested in seeing how the new function works, maybe I'll check it out using the google code search tool http://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search (although I usually have a hard time making sense of that code). The source is available in https://svn.r-project.org/R/trunk/src/library/utils/R/sourceutils.R Duncan Murdoch Please let me briefly clarify this part: But it can. If you open a script and choose save, it will be saved to the same place. I just mean that when you do save as... R doesn't seem to use the same information that it uses during a normal save (the directory or script name). In other applications like Microsoft Word, or Python's IDLE (screen shot attached) the user is shown a dialogue box with the file name in the current directory of that file. This is a very minor annoyance though. I only brought it up because I thought it would be easier to explain than asking about a function that would do the job of getSrcFilename, which is really what I was after. I rarely upgrade my R versions, but this will definitely be an occasion when I do! This makes me want to go back and look at the past release notes to see what other goodies I've been overlooking. Thanks again, Gene On Mon, Mar 14, 2011 at 8:17 PM, Duncan Murdochmurdoch.dun...@gmail.com wrote: On 11-03-14 8:12 PM, Gene Leynes wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Duncan Murdoch Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.commailto:murdoch.dun...@gmail.com wrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menu In just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script
Re: [R] File Save As...
On 15/03/2011 2:56 PM, Gene Leynes wrote: The getSrcFilename function is exactly what I was trying to describe, and I'm excited to know that it's on it way! I have tried to create that type of function, but I didn't think it was possible with currently available functions. I would be interested in seeing how the new function works, maybe I'll check it out using the google code search toolhttp://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search(although I usually have a hard time making sense of that code). The source is available in https://svn.r-project.org/R/trunk/src/library/utils/R/sourceutils.R Duncan Murdoch Please let me briefly clarify this part: But it can. If you open a script and choose save, it will be saved to the same place. I just mean that when you do save as... R doesn't seem to use the same information that it uses during a normal save (the directory or script name). In other applications like Microsoft Word, or Python's IDLE (screen shot attached) the user is shown a dialogue box with the file name in the current directory of that file. This is a very minor annoyance though. I only brought it up because I thought it would be easier to explain than asking about a function that would do the job of getSrcFilename, which is really what I was after. I rarely upgrade my R versions, but this will definitely be an occasion when I do! This makes me want to go back and look at the past release notes to see what other goodies I've been overlooking. Thanks again, Gene On Mon, Mar 14, 2011 at 8:17 PM, Duncan Murdochmurdoch.dun...@gmail.comwrote: On 11-03-14 8:12 PM, Gene Leynes wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Duncan Murdoch Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.commailto:murdoch.dun...@gmail.com wrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menu In just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script name. It can be annoying from a GUI perspective, especially if you typically work in one directory and store your scripts somewhere else, and the problem is worse when you have many script versions or directories. I know there are many ways to work around this issue. I also know about the batch file project. However, it seems like this is something that users shouldn't *need* to work around. I think this is related to the fact that R has no way of knowing the location of any open script file. (Please correct me
Re: [R] File Save As...
The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Could getSrcFilename() gain a default argument so that getSrcFilename() would by default return the path of the executing script? Hadley -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/ __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
On 15/03/2011 4:45 PM, Hadley Wickham wrote: The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Could getSrcFilename() gain a default argument so that getSrcFilename() would by default return the path of the executing script? No, it needs to see a function defined in that script. Duncan Murdoch __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
The getSrcFilename function is exactly what I was trying to describe, and I'm excited to know that it's on it way! I have tried to create that type of function, but I didn't think it was possible with currently available functions. I would be interested in seeing how the new function works, maybe I'll check it out using the google code search toolhttp://www.google.com/codesearch?hl=enlr=q=lang%3Ar+sbtn=Search(although I usually have a hard time making sense of that code). Please let me briefly clarify this part: But it can. If you open a script and choose save, it will be saved to the same place. I just mean that when you do save as... R doesn't seem to use the same information that it uses during a normal save (the directory or script name). In other applications like Microsoft Word, or Python's IDLE (screen shot attached) the user is shown a dialogue box with the file name in the current directory of that file. This is a very minor annoyance though. I only brought it up because I thought it would be easier to explain than asking about a function that would do the job of getSrcFilename, which is really what I was after. I rarely upgrade my R versions, but this will definitely be an occasion when I do! This makes me want to go back and look at the past release notes to see what other goodies I've been overlooking. Thanks again, Gene On Mon, Mar 14, 2011 at 8:17 PM, Duncan Murdoch murdoch.dun...@gmail.comwrote: On 11-03-14 8:12 PM, Gene Leynes wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Duncan Murdoch Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.com mailto:murdoch.dun...@gmail.com wrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menu In just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script name. It can be annoying from a GUI perspective, especially if you typically work in one directory and store your scripts somewhere else, and the problem is worse when you have many script versions or directories. I know there are many ways to work around this issue. I also know about the batch file project. However, it seems like this is something that users shouldn't *need* to work around. I think this is related to the fact that R has no way of knowing the location of any open script file. (Please correct me if I'm wrong about that last part! ) I think this has come up before, but I couldn't find it in my searches. Is this a problem for other users as well? Should I post this to the development
Re: [R] File Save As...
Could getSrcFilename() gain a default argument so that getSrcFilename() would by default return the path of the executing script? No, it needs to see a function defined in that script. But I thought default arguments were evaluated in the parent environment? Does that not follow for source attributes as well? Hadley -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/ __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
On 11-03-15 9:10 PM, Hadley Wickham wrote: Could getSrcFilename() gain a default argument so that getSrcFilename() would by default return the path of the executing script? No, it needs to see a function defined in that script. But I thought default arguments were evaluated in the parent environment? Does that not follow for source attributes as well? No, defaults are evaluated in the evaluation frame of the function. That's why you can use local variables in them, e.g. the way rgamma uses 1/rate as a default for scale. But the point isn't evaluation here: the point is the parsing. A function gets its source attribute when it is parsed, so getSrcFilename needs to be passed something that was parsed in the script. Duncan Murdoch __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menu In just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script name. It can be annoying from a GUI perspective, especially if you typically work in one directory and store your scripts somewhere else, and the problem is worse when you have many script versions or directories. I know there are many ways to work around this issue. I also know about the batch file project. However, it seems like this is something that users shouldn't *need* to work around. I think this is related to the fact that R has no way of knowing the location of any open script file. (Please correct me if I'm wrong about that last part! ) I think this has come up before, but I couldn't find it in my searches. Is this a problem for other users as well? Should I post this to the development list? Is this change known to be possible / impossible? Can I help make the change? I think it's simply a matter of different working patterns. R offers the current working directory to save into. For some people, that's fine. Others (like you) want some other default. I don't think we want to make the editor so elaborate that it caters to every taste. If you want a better editor, there are lots out there, including several that have good integration with R (Emacs, Eclipse, WinEdt, TinnR, etc.) I think it would be best to use one of those editors, customized to suit your needs. Duncan Murdoch Thanks Gene [[alternative HTML version deleted]] __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.comwrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menu In just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script name. It can be annoying from a GUI perspective, especially if you typically work in one directory and store your scripts somewhere else, and the problem is worse when you have many script versions or directories. I know there are many ways to work around this issue. I also know about the batch file project. However, it seems like this is something that users shouldn't *need* to work around. I think this is related to the fact that R has no way of knowing the location of any open script file. (Please correct me if I'm wrong about that last part! ) I think this has come up before, but I couldn't find it in my searches. Is this a problem for other users as well? Should I post this to the development list? Is this change known to be possible / impossible? Can I help make the change? I think it's simply a matter of different working patterns. R offers the current working directory to save into. For some people, that's fine. Others (like you) want some other default. I don't think we want to make the editor so elaborate that it caters to every taste. If you want a better editor, there are lots out there, including several that have good integration with R (Emacs, Eclipse, WinEdt, TinnR, etc.) I think it would be best to use one of those editors, customized to suit your needs. Duncan Murdoch Thanks Gene [[alternative HTML version deleted]] __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]] __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] File Save As...
My preferred cycle with RGui is: 1) Open RGui 2) Save (empty) workspace in the new working directory 3) Quit RGui 4) Double-click on the saved workspace. This opens RGui and sets the working directory. 5) Open Notepad++ and edit as desired 6) Select code to run 7) Press F8 I have also been playing with RStudio, but they haven't got the directory thing straightened out yet AFAIK. --- Jeff Newmiller The . . Go Live... DCN:jdnew...@dcn.davis.ca.us Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --- Sent from my phone. Please excuse my brevity. Gene Leynes gleyne...@gmail.com wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.comwrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menuIn just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script name. It can be annoying from a GUI perspective, especially if you typically work in one directory and store your scripts somewhere else, and the problem is worse when you have many script versions or directories. I know there are many ways to work around this issue. I also know about the batch file project. However, it seems like this is something that users shouldn't *need* to work around. I think this is related to the fact that R has no way of knowing the location of any open script file. (Please correct me if I'm wrong about that last part! ) I think this has come up before, but I couldn't find it in my searches. Is this a problem for other users as well? Should I post this to the development list? Is this change known to be possible / impossible? Can I help make the change?I think it's simply a matter of different working patterns. R offers the current work ing directory to save into. For some people, that's fine. Others (like you) want some other default. I don't think we want to make the editor so elaborate that it caters to every taste. If you want a better editor, there are lots out there, including several that have good integration with R (Emacs, Eclipse, WinEdt, TinnR, etc.) I think it would be best to use one of those editors, customized to suit your needs. Duncan MurdochThanks Gene [[alternative HTML version deleted]] _ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]]_ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]] __
Re: [R] File Save As...
On 11-03-14 8:12 PM, Gene Leynes wrote: Yes, I understand. Normally I use Eclipse, which does what I want for save as... The bigger issue is that R can't tell the location of an open script, which makes it harder to create new versions of existing work But it can. If you open a script and choose save, it will be saved to the same place. Or do you mean an executing script? There are indirect ways to find the name of the executing script. For example, in R-devel (to become 2.13.0 next month), you can do this: cat(This file is , getSrcFilename(function(){}, full=TRUE), \n) The getSrcFilename() function will be new in 2.13.0. You can do the same in earlier versions, but you need to program it yourself. Duncan Murdoch Say you have some great analysis going in Research 2011-01-01 with a folder for data, code, gui, other languages, excel, whatever else. Then you want to make a new folder for Research 2011-01-02 with the same structure. Making sure that you're setting the right directory in the new version adds a layer of complexity which would be nice to avoid. It would be really nice to just copy the folders, and let the script detect it's own location so that it could read from the data sub-directory, the gui's sub-directory, etc. What I want to be able to do is copy the tools I create into different client folders so that anyone can just use the tool without changing the source code which is simple for you or I, but prevents newcomers from using the tools. Apparently I'm in the minority on the next part: but the save as thing I was describing before seems very strange to me. As I teach new people R it's always kind of a hangup that requires a little more explanation, but maybe it's the way I'm looking at it. Thanks for your reply Duncan. On Mon, Mar 14, 2011 at 6:57 PM, Duncan Murdoch murdoch.dun...@gmail.com mailto:murdoch.dun...@gmail.com wrote: On 11-03-14 5:03 PM, Gene Leynes wrote: As much as I love R, there are still the occasional shortcomings. I would love to find a solution to the save as... problem. Steps to reproduce the problem: 1. Open any version of he R GUI in Windows 2. Choose File Open from the menu 3. Open a script that is in a different directory 4. Choose File Save As from the menu In just about any other application you would be presented with a GUI showing the current folder of the script and the current name of the script. You could then edit the name and save. In R, you have to find the directory of the script and the script name. It can be annoying from a GUI perspective, especially if you typically work in one directory and store your scripts somewhere else, and the problem is worse when you have many script versions or directories. I know there are many ways to work around this issue. I also know about the batch file project. However, it seems like this is something that users shouldn't *need* to work around. I think this is related to the fact that R has no way of knowing the location of any open script file. (Please correct me if I'm wrong about that last part! ) I think this has come up before, but I couldn't find it in my searches. Is this a problem for other users as well? Should I post this to the development list? Is this change known to be possible / impossible? Can I help make the change? I think it's simply a matter of different working patterns. R offers the current working directory to save into. For some people, that's fine. Others (like you) want some other default. I don't think we want to make the editor so elaborate that it caters to every taste. If you want a better editor, there are lots out there, including several that have good integration with R (Emacs, Eclipse, WinEdt, TinnR, etc.) I think it would be best to use one of those editors, customized to suit your needs. Duncan Murdoch Thanks Gene [[alternative HTML version deleted]] __ R-help@r-project.org mailto:R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.