gpt4 book ai didi

R:更改省略号中的参数值并将省略号传递给其他函数,而无需使用list()和eval()

转载 作者:行者123 更新时间:2023-12-04 03:52:32 27 4
gpt4 key购买 nike

我正在寻找一种通用的方法来更改省略号内的参数值并将其传递给其他函数。我知道一个丑陋的解决方案,看起来像这样:

test <- function(...) {
a <- list(...)
a[['y']] <- 2
return(eval(parse(text=paste0('identical(',paste(unlist(a),collapse=','),')'))))
}

test(x=1,y=1)

理想情况下,我想避免将...转换为列表,然后再使用eval()。是否可以以某种方式通过名称引用内部的参数并更改其值?

最佳答案

您必须解压缩...才能操作其内容。实际上,这里的丑陋之处是您的最后一行,可以将其简化为do.call(identical, a):

test <- function(...) {
a <- list(...)
a[['y']] <- 2
do.call(identical, a)
}

test(x=1,y=1)
# [1] FALSE

关于R:更改省略号中的参数值并将省略号传递给其他函数,而无需使用list()和eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16321760/

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