2017-08-17 40 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,右側反之。

這個運算符被廣泛用於整型。

+0

非常感謝!我完全喪失了在哪裏看! – Babu

+1

@Babu您可以找到像R'?「%||%」'中所有引號一樣的操作符的幫助頁面,以確保它可以被解析。 – MrFlick