又发生了 我正要按下按钮以发布答案的问题已删除:
我正在寻找一种从函数的省略号参数中提取绑定到符号以及符号的对象的值的方法。也就是说,我试图以参照透明的方式从省略号中提取符号。我尝试过使用替代品和lazy_dots,但没有成功。
# function I'm trying to create
get_symbols <- function(...) {
# insert code here
# should return a character vector of symbols
}
# example function calls
some_function <- function(...){
get_symbols(...)
}
z <- quote(T)
some_function(quote(x), ~y, z)
# should return vector of symbols c(x, ~y, T)
some_function(quote(x), ~y, quote(T))
# should return vector of symbols c(x, ~y, T)
查看substitute
和的这些用法deparse
是否有帮助。该deparse
函数从(有效)语言表达式返回文本/字符向量。:
some_function1 <- function(...){
print(sapply( substitute(list(...)), deparse)[-1]) # -1 drops "list"
}
z <- quote(T)
some_function1(quote(x), ~y, z)
#[1] "quote(x)" "~y" "z"
some_function1(quote(x), ~y, quote(T))
#[1] "quote(x)" "~y" "quote(T)"
此版本评估其参数,这可能是所需参数的第二部分,即值:
some_function2 <- function(...){
print(sapply(list(...), deparse))
}
z <- quote(T)
some_function2(quote(x), ~y, z)
#[1] "x" "~y" "T"
some_function2(quote(x), ~y, quote(T))
#[1] "x" "~y" "T"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句