[R] "function" as variable name - probably better error message

peter dalgaard pdalgd at gmail.com
Thu Apr 16 16:58:33 CEST 2015


Actually, to split a few hairs, I think the documentation is essentially correct. 

Reserved words are not the same as quoted strings. You cannot use them in syntactically the same way that you usually use variable names, as unquoted strings in expressions. They can BE variable names, or more precisely: object names. In fact they often are; you get in deep trouble if you redefine  `for`, `function`, or `if` -- as functions, at least. That goes for things like `{` too, by the way.

-pd

On 16 Apr 2015, at 13:38 , Duncan Murdoch <murdoch.duncan at gmail.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> On 16/04/2015 6:19 AM, Rainer M Krug wrote:
>> Hi
>> 
>> The following code works as expected:
>> 
>> 
>> list(plot="Not any more!")
>> 
>> ,---- | > plot <- "Not any more!") | [1] "Not any more!" `----
>> 
>> But for this I get an error:
>> 
>> ,---- | > function <- "Not any more!" | Error: unexpected
>> assignment in "function <-" `----
>> 
>> The error message is quite cryptic and does not help much further.
>> Would it be possible to provide a more useful error message in this
>> case that (presumably) "function" is a reserved word?
>> 
>> Along the same lines - is there a list of reserved words which can
>> not be used in R as variable names (not even as elements in a a
>> list())?
> 
> The R Language Definition lists the reserved words (see section
> 10.3.3).  It oversimplifies things, saying they can't be used as
> variable names, when in fact almost any string can be used with proper
> quoting.  For example, both of these work:
> 
> "function" <- "Not any more!"
> `function` <- "Not any more!"
> 
> Duncan Murdoch
> 
>> 
>> This is not a huge problem, but it cost me a few minutes of
>> figuring out.
>> 
>> Thanks,
>> 
>> Rainer
>> 
>> 
>> 
>> ______________________________________________ R-help at r-project.org
>> mailing list -- To UNSUBSCRIBE and more, see 
>> 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.
>> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
> Comment: GPGTools - https://gpgtools.org
> 
> iQEcBAEBCgAGBQJVL58yAAoJEHE2Kz23YMZyyv0H/jKjwwkQ1v7jIRsZ9hxcJECU
> HHHuAEusv+pgJTybdxn66XykCXQOgaLmGPGksK+CcJrBgLW2WgAh4C0CUpN36DPn
> TOYpos9i3wZ8k0Idr8xiEeQ/PcD0pkMEwd6oYY0lL2Ikribu8maVKxcoYvjNIJOE
> 3E3qrrpZfH9U2a9ws9jxJk8O3n+OQ7x8GQqUNTQHthd5McHZ63F7uIEBH/tHT7Tn
> x3gXAFbuSBJ6TtqaOZdPYFh3tV7CNyvJOso8yreSWK+0ZksXGKBtqElDJM0atrAj
> bOwEAJe6gGrEPx92NUWkTWeILDa6v96WZzprwLDi+cwt7jItILFligaXlookbf0=
> =vKWN
> -----END PGP SIGNATURE-----
> 
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list