2011-08-02 7 views
3

Rでは、変数を演算子として使用できるように変数やその他の構文に演算子を割り当てることは可能ですか?私の場合は、foreachパッケージの%do%演算子または%dopar%演算子のどちらかを使用するコードが必要です(ユーザーが並列計算を必要とするかどうかによって異なります)。実行されるコードのブロックは変わりません。変数は変わりません。オペレータを変数に割り当てることはできますか?

+0

私は、eval関数の問題とは何を意味するのかよく分かりません。あなたは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

関連する問題