2017-08-17 28 views
0

以下のRコードスニペット(デバッガから取得)では、%||%演算子は8行目で何を意味していますか?Rの%||%演算子はどういう意味ですか?

function (env = caller_env(), default = NULL) 
{ 
    out <- switch_type(env, environment = env, definition = , 
    formula = attr(env, ".Environment"), primitive = base_env(), 
    closure = environment(env), list = switch_class(env, 
     frame = env$env)) 

    out <- out %||% default 

if (is_null(out)) { 
    type <- friendly_type(type_of(env)) 
    abort(paste0("Can't extract an environment from ", type)) 
    } 
    else { 
    out 
    } 
} 

ありがとうございました!

答えて

2

%||%はR言語の一部ではありません。提供されたコードをGitHubで簡単に検索すると、rlangパッケージになります。

library(rlang) 
`%||%` 

がにつながる:

つまり
function (x, y) 
{ 
    if (is_null(x)) 
     y 
    else x 
} 
<environment: namespace:rlang> 

それ以外NULL、右側ではない場合、それは左側を返します。

この演算子は、tidyverseで広く使用されています。

+0

多くの感謝!私はどこを見なければならないのか完全に迷っていた! – Babu

+1

@Babu演算子のヘルプページは、R '?"%||% "'のように、すべての引用符だけを解析して解析できることを確認することができます。 – MrFlick

関連する問題