gpt4 book ai didi

r - 获取R函数的参数名称

转载 作者:行者123 更新时间:2023-12-03 21:43:52 24 4
gpt4 key购买 nike

对于任意功能

f <- function(x, y = 3){
z <- x + y
z^2
}


我希望能够使用 f的参数名称

> argument_names(f)
[1] "x" "y"


这可能吗?

最佳答案

formalArgsformals是在这种情况下有用的两个功能。如果只需要参数名称,则formalArgs会更有用,因为它仅提供名称而忽略任何默认值。 formals提供一个列表作为输出,并提供参数名称作为列表中元素的名称,并提供默认值作为元素的值。

f <- function(x, y = 3){
z <- x + y
z^2
}

> formalArgs(f)
[1] "x" "y"
> formals(f)
$x


$y
[1] 3


我的第一个倾向是建议 formals,如果您只想要参数的名称,则可以使用 names(formals(f))之类的名称。 formalArgs函数只是为您执行此操作的包装程序,因此无论哪种方法都可以。

编辑:请注意,从技术上讲,原始函数没有“形式”,因此,如果在原始函数上使用此方法,则将返回NULL。一种解决方法是先将函数包装在 args中,然后再传递给 formalArgs。无论函数是否为原始函数,此方法均有效。

> # formalArgs will work for non-primitives but not primitives
> formalArgs(f)
[1] "x" "y"
> formalArgs(sum)
NULL
> # But wrapping the function in args first will work in either case
> formalArgs(args(f))
[1] "x" "y"
> formalArgs(args(sum))
[1] "..." "na.rm"

关于r - 获取R函数的参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640322/

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