[R] Error: unexpected '<' in "<" when modifying existing functions
Duncan Murdoch
murdoch.duncan at gmail.com
Sat Jan 14 03:22:24 CET 2012
On 12-01-13 8:05 PM, Peter Langfelder wrote:
> On Fri, Jan 13, 2012 at 4:57 PM, Rui Esteves<ruimaximo at gmail.com> wrote:
>> Hi.
>> I am trying to modify kmeans function.
>> It seems that is failing something obvious with the workspace.
>> I am a newbie and here is my code:
>
>>> <environment: namespace:stats>
>> Error: unexpected '<' in "<"
>
> Do not include the last line
>
> <environment: namespace:stats>
>
> it is not part of the function definition. Simply leave it out and
> your function will be defined in the user workspace (a.k.a. global
> environment).
That's only partly right. Leaving it off will define the function in
the global environment, but the definition might not work, because
that's where it will look up variables, and the original function would
look them up in the stats namespace. I don't know if that will matter,
but it might lead to tricky bugs.
What you should do when modifying a function from a package is set the
environment to the same environment a function in the package would
normally get, i.e. to the stats namespace. I think the as.environment()
function can do this, but I always forget the syntax; an easier way is
the following:
Create the new function:
kmeansnew <- function (...) ...
Set its environment the same as the old one:
environment(kmeansnew) <- environment(stats::kmeans)
BTW, if you use the fix() function to get a copy for editing, it will do
this for you automatically.
Duncan Murdoch
More information about the R-help
mailing list