2017-07-06 19 views
1

參數的功能,我想避免運行使用相同的參數多次同樣的功能,以節省計算時間, 。指紋以其r中

給出了下面的代碼:

f1 <- function(a,b) return(a+b) 
f2 <- function(c,d,f) return(c*d*f) 

x <- 3 
y <- 4 

f2(1,2,f1(x,y)) 

讓我們假設「F」函數參數的計算是很難的, ,我想以某種方式兌現的結果,所以,我想知道,如果它曾經執行過。

這裏是我的主要問題:

我以爲我可以生成F1(3,4), 例如一鍵自己:關鍵< - 粘貼( 'F1',X,Y),做我自己記賬並避免再次運行。

然而,有可能是F2以根據f自動生成這樣的密鑰並將其退還給我? (對於具有任何參數的任何函數)

如果不是/可替代地,之前我通過F1(X,Y),我可以產生在一個通用的方式這樣的密鑰, ,將用於與任何參數的任何功能工作?

感謝很多

回答

0

有趣的問題。我從來沒有想過這個。

快速谷歌搜索發現,這個包:R.cache

功能addMemoization接受一個函數作爲參數,並返回一個應該緩存其結果的功能。

我沒有用過這個包我自己,所以我不知道它有多好作品,但它似乎適合你在找什麼。

+0

太棒了,我不知道這已經實施。跟進你的鏈接我能夠找到以下線程:https://stackoverflow.com/questions/7262485/options-for-caching-memoization-hashing-in-r。這導致了我的包裹'記憶',這也似乎非常相關。 – kamashay