2013-04-17 108 views
-1

我是R新手。我正在使用一個包「genalg」進行遺傳算法相關函數。在這個包裏有一個叫做「rgba」的函數。當我調用這個函數(rbga)時,我需要傳遞另一個函數(讓A)(用戶編寫的評估函數)作爲參數的引用,並且它(A)將被「rbga」函數調用,但我想訪問某些值在「A」中沒有被「rbga」函數傳遞給「A」。我可以爲此使用環境變量,但有沒有其他方法可以做到這一點?將額外參數傳遞給R中的函數

編輯:

evaluate<-function(x,y,z) # x,y,z arguments passed by rbga 
{ 
q=p # p is neither x,y,z nor local to this function. 
} 

result<- rbga(..,evalFunc=evaluate,..) # calls the function evaluate. 

在功能 「評估」 我想用頁。由於p沒有被調用函數傳遞,也沒有被本地調用函數傳遞,所以我需要以某種方式傳遞它。我怎樣才能做到這一點?

+0

我認爲你得到的功能相反... –

+0

閱讀這三次,仍然不知道你在問什麼。你能提供一些示例代碼嗎?你能寫出來嗎(最好是在代碼中)你自己試圖解決問題的方法是什麼? –

+0

我也在尋找這個問題的答案,但是像Paul Hiemstra在下面說的那樣,這似乎是不可能的(嘗試包genoud,它允許傳遞參數)。不幸的是,這裏的R社區總是低估他們不知道答案的問題。但是不要擔心,你的問題沒有任何錯誤或沒有主題。 – jbssm

回答

1

從文檔看來,這兩種類型的用戶定義函數都有一個明確界定的界面。 evalFunc將染色體的向量和monitorFunc作爲包裝傳遞給此函數的內部對象,用戶可從中獲取內容,例如繪圖。

在其當前的實現中,不可能爲這些函數添加自定義用戶定義的參數。如果要開始工作,需要對包代碼進行一些調整。

相關問題