'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