'sparcl'包在标准'stat'包中使用'kmeans'功能。我想让它使用我自己的kmeans ++实现。要做到这一点替换R中内置函数的定义?
一种方式是在SPARCL包本身编辑代码。我宁愿避免这种情况,因为它会很麻烦,因为我不知道如何在R中安装编辑后的代码。
不幸的是,superassignment运算符“< < - ”不起作用:
> kmeans <<- function(x) print("hi!")
Error: cannot change value of locked binding for 'kmeans'
既没有 “分配”:
assign("kmeans",function(x) {print("HI THERE!"); return(FALSE)},pos="package:sparcl")
Error in assign("is.null", function(x) { :
cannot add bindings to a locked environment
所以编辑包代码的唯一途径?
谢谢!
你可以用'trace'做这个吗? –
你想替换旧版本的原因是什么,而不是仅仅写一个新版本,而是使用那个版本呢? – Dason
创建自己版本的(导出)函数调用'kmeans'并更改这些实例以便它们调用您自己的自定义函数不是更容易吗? (也许这就是@Dason所说的......?) – joran