gpt4 book ai didi

R:如何在不评估 `...` 的情况下返回 `fn(...)` 中 `...` 的确切形式?

转载 作者:行者123 更新时间:2023-12-04 09:52:17 25 4
gpt4 key购买 nike

考虑这段代码

fn = function(...) {
# print the content of ... without evaluation?
}

我希望 fn(a = b) 的输出为 "a = b"fn(a = gn(b), 3~ b~a, dd, e = 2 + f, h = hn(jn(cdf)))list("a=gn(b)", "3~b~a", “dd”、“e=2+f”、“h=hn(jn(cdf)))”

我似乎找不到适合它的 NSE 函数。我更喜欢 Base R,所以我更了解这个过程。我得到的最接近的是这个

fn = function(...) {
res = rlang::enexprs(...)
paste0(names(res), ifelse(names(res)=="",names(res) , "=") , sapply(res, capture.output))
}

最佳答案

match.call ( see here ) 的替代方法是未记录 ...()

fn <- function(...) {
x <- substitute(...())
y <- ifelse(nchar(names(x)) > 0, paste(names(x), "=", x), as.character(x))
as.list(y)
}

fn(a = b)
fn(a = gn(b), 3~b~a, dd, e = 2 + f, h = hn(jn(cdf)))

关于R:如何在不评估 `...` 的情况下返回 `fn(...)` 中 `...` 的确切形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61555675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com