Skip to content

using reserved words in R, and reuse variable names in different functions

11 messages · C W, David Winsemius, Sarah Goslee +5 more

#
On Mar 1, 2013, at 1:56 PM, C W wrote:

            
Whatever problems you are having at the moment (and they appear to be many) are not  due to using existing function names as data-object names. You are asked to report the error messages you get with your code problems, and those messages I found to be reasonably informative for the first 5 errors I found.
#
On Fri, Mar 1, 2013 at 7:06 PM, C W <tmrsg11 at gmail.com> wrote:
No. The environment of a function is independent of other functions.
Yes. Using reserved words can cause all kinds of subtle problems. Avoid it.

Sarah

  
    
#
To wit:
  "Firstly, don't call your matrix 'matrix'. Would you call your dog 'dog'? Anyway, it might clash with the function 'matrix'"

I once had a cat named "kitty" and she never had a problem with it.

Clashes between non-functions and functions that cause problems are not that common.  With 4000 packages, each with a number of functions, it is hard to avoid using a name that someone has used for a function.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
#
On 13-03-01 8:35 PM, C W wrote:
Name them in ways that are meaningful to you.  R standard function names 
are famous for not following any naming pattern consistently.  Avoid 
using dots in the name unless you are defining methods (e.g. print.lm is 
the print method for lm objects).
Actually pi is not a function, but it is a variable.  If you write a 
package that exports a function or variable named pi, it would mask the 
standard one, and that could cause big problems for users.  If you use 
it internally, it will only mask the standard one in your code, and that 
may not matter to you.

pie is a function, but all it does is draw pie charts, so who cares if 
you mask it? :-).

Duncan Murdoch
#
On 03/02/2013 01:12 PM, Sarah Goslee wrote:
Very sound advice.  But it should be noted that "t", "c", and "matrix" 
to which
the OP referred are *not* technically reserved words.  Nonetheless their use
as names of user-defined objects should be eschewed.  See fortune("dog").

You *can't* actually assign values to reserved words.  E.g.

     TRUE <- 42

throws an error.  (Whereas matrix <- 42, bad form though it may be,
does not throw an error.)

     cheers,

         Rolf Turner
#
Duncan's comment may not qualify as a fortune, but it did make
me chuckle.

Peter Ehlers
On 2013-03-02 03:01, Duncan Murdoch wrote:
[...snip...]
[...snip...]
#
Well *I* think it should be a fortune!

     cheers,

         Rolf
On 03/03/2013 10:30 AM, Peter Ehlers wrote:
1 day later
#
Yes, it can cause problems. And speaking for myself, I'd say it's not
worth the risk, because it's easy enough to find alternative variable
names that are close enough to the notation of your formulas that
remembering should be no problem. For example, "tt", "cc", and "mmatrix"
might do it.

-Don