2011-08-02 68 views
3

在R中,是否可以將一個運算符分配給一個變量或其他一些允許該變量用作運算符的構造?在我的情況下,我想要一些代碼使用foreach包中的%do%或%dopar%運算符(取決於用戶是否需要並行計算)。要執行的代碼塊保持不變,它只是可變的運算符。我可以給運算符分配一個變量嗎?

+0

我不確定你的意思是什麼問題與eval函數?!你可以傳遞所需的命令作爲字符串來評估! – user702846

回答

5

這就是所謂的運算符重載,這裏是一個簡單的例子:

"%do%" <- function(a, b){ 
    if(do_plus){ 
    a + b 
    } else { 
    a - b 
    } 
} 

do_plus <- TRUE 

3 %do% 4 
[1] 7 

do_plus <- FALSE 

3 %do% 4 
[1] -1 
5

你問錯了問題。如果您沒有並行運行,只需使用%dopar%並致電registerDoSEQ。隨着%dopar%,代碼不會改變,只是後端。

+1

感謝您指出'registerDoSEQ',這對我來說是新的。 – Aaron

+0

這是完美的!謝謝! – SFun28

相關問題