2012-04-24 16 views
0

Rでは、別の関数の名前をパラメータとして持つ関数があります。私は、入力関数名が既に存在する戦略関数名の関数名と同じであるかどうかをチェックするために、親関数内にif文を構築しました。論理演算子に沿ってR関数名を使用

function_parent <- function(function_name){ 
    if(function_name == strategy_function){...} 
} 

ただし、Rはこの表記を正しく認識しません。このような方法で関数の名前を使用しているのですが、たとえそれがあったとしても、より良い方法がありますか?これはややばらつきそうです。

+0

'' strategy_function''のように '' strategy_function''を引用符で囲みます。 –

+1

実際、@TylerRinkerは、 'function_name'が文字か、関数やシンボルの引用されていない名前かどうかを尋ねていました。 – joran

答えて

1

deparse(substitute(strategy_function))を使用して比較しては、トリックをしました。

3

strategy_functionの周りに引用符を試してみてください。

function_parent <- function(function_name){ 
    if(function_name == "strategy_function"){...} 
} 
+0

これは、「比較(1)は原子型とリスト型に対してのみ可能です」というエラーを返す – dplanet

関連する問題