2016-04-18 8 views
0

Rで減算(または除算)をオブジェクトとして割り当てて呼び出すことはできますか?私はこの
を必要とするのはなぜ次の例-1変数としての減算方法

a <- 1 
b <- 2 

method <- "-" 
a method b 
# Wanted result -1 

method <- "/" 
a method b 
# Wanted result 0.5 

を生成しているので、私は-または/のいずれかに関数パラメータを設定します。そのような何か:

dummyF <- function(a, b, method) { 
    a get(method) b 
} 
+1

'dummyF < - 関数(a、b、メソッド){txt = paste(a、method、b); eval(parse(text = txt))} 'あなたのニーズに合う? – brittenb

+1

2つの方法しかない場合は、それらをハードコーディングして、 'function(a、b、do_plus)(if(do_plus)\' + \ else '\ 'のようなTRUE/FALSEオプションを選択するとよいでしょう。/\ ')(a、b)' – Frank

答えて

8

あなたは中置記法ではなく、バッククォートを使用して、通常の関数表記を使用して関数を呼び出すことができます。リストには彼らと

foo <- `-` 
foo(1,2) 

例を:

l <- list(add = `+`,subtract = `-`) 
> l[["add"]](1,2) 
[1] 3 
> l[["subtract"]](1,2) 
[1] -1 
6

使用可能do.call

method <- "-" 
do.call(method, list(a,b)) 
#[1] -1 

method <- "/" 
do.call(method, list(a,b)) 
#[1] 0.5 
関連する問題