在 Clojure 中你可以这样做:
(def x {:a 1 :b 2})
(def y (or (:c x) 111))
在 R 中你可以这样做:
x = list(a = 1, b = 2)
y = {
if ("c" %in% names(x)) {
x$c
} else {
111
}
}
它有效,但远没有那么优雅。有没有更好的办法?
最佳答案
在 dplyr
中定义但未导出(https://github.com/hadley/dplyr/blob/master/R/utils.r#L81)是运算符
"%||%" <- function(x, y) if(is.null(x)) y else x
然后就可以写了
x$a %||% 1111
关于r - 从 R 中的列表中获取时的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479895/