gpt4 book ai didi

R:有没有办法捕获所有函数参数值

转载 作者:行者123 更新时间:2023-12-03 23:28:37 24 4
gpt4 key购买 nike

我写了一个制作绘图的函数。我遇到的问题之一是需要生成可重现的图表。当然,一种解决方案是保存我生成的每个图的代码(即保存我为函数参数设置的确切值)。但是,我想知道是否有一种方法可以捕获所有输入值,包括数据对象等,并将它们保存在列表中并将其作为输出返回。我想,一个简单的方法如下:

plot.foo <- function(x, main=NULL){
plot(x, main=main)
list(data=x, main=main)
}

但是,我写的函数除了省略号参数外还有一堆参数(见下文),所以我想知道是否有更快的方法来保存所有输入参数值。谢谢!
plot.foo <- function(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10,...){
...
}

最佳答案

有多种可能有用的函数:match.call , match.arg然后还有提取...的具体方法论据。

plot.foo <- 
function(x, main=NULL){
cl <- match.call()
print(cl)
plot(x, main=main)
list(data=x, main=main)
}

plot.foo(1)
## plot.foo(x = 1)
## $data
## [1] 1
##
## $main
## NULL

plot.foo <-
function(x, main=NULL, ...){
extras=list(...)
print(extras)

cl <- match.call()
print(cl)

plot(x, main=main) # this would actually produce the grapjic
list(data=x, main=main, extras=extras) # this returns the arguments as a list
}

plot.foo(1, sthg="z")
## $sthg
## [1] "z"

# You could assign the returned list to a name or you could `save` to a file
plot.foo(x = 1, sthg = "z")
## $data
## [1] 1
##
## $main
## NULL

还有 sys.call其结果可以作为文本返回的函数 deparse .

关于R:有没有办法捕获所有函数参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15391943/

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