[R] Error: unexpected '<' in "<" when modifying existing functions

Rui Esteves ruimaximo at gmail.com
Sat Jan 14 12:08:24 CET 2012


All of these tries leave to the same result:
1) First I defined kmeansnew with the content of kmeans, but leaving
the  <environment: namespace:stats> out.
Then I run environment(kmeansnew)<- environment(stats::kmeans) at the
command line.
2) kmeansnew <- kmeans() {.... environment(kmeansnew)<-
environment(stats::kmeans) }
3) kmeansnew <- kmeans() {....}   environment(kmeansnew)<-
environment(stats::kmeans)

When I do kmeansnew(iris[-5],4) it returns:
 Error in do_one(nmeth) : object 'R_kmns' not found

'R_kmns' is a .FORTRAN that is called by the original kmeans().
it is the same error as if i would just leave <environment:
namespace:stats> out.



On Sat, Jan 14, 2012 at 11:50 AM, Duncan Murdoch
<murdoch.duncan at gmail.com> wrote:
> On 12-01-14 3:58 AM, Rui Esteves wrote:
>>
>> Thank you both.
>>
>> 1) As Duncan said, if I leave<environment: namespace:stats>  out, it
>> will not work since it is using .C and .Fortran functions that kmeans
>> calls.
>> I
>> 2) don`t know how to use the as.environment() (I did not understood by
>> reading the help).
>>
>> 3) Setting environment(kmeansnew)<- environment(stats::kmeans) does
>> not work as well.
>
>
> I think you need to explain what "does not work" means.  What did you do,
> and how do you know it didn't work?
>
>>
>> 4) Using fix() works, but then I don`t know how to store just the
>> function in an external file. To use it in another computer, for
>> example.  If I use save(myfunc,"myFile.R", ASCII=TRUE) it doesn't work
>> when I try to load it again using myfunc=load("myFile.R")
>
>
> Don't use load() on a source file.  Use load() on a binary file produced by
> save().  You could save() your working function, but then you can't edit it
> outside of R.  To produce a .R file that you can use in another session,
> you're going to need to produce the function, then modify the environment,
> using 2 or 3 above.
>
> Duncan Murdoch



More information about the R-help mailing list