gpt4 book ai didi

r - R中的匹配函数arg

转载 作者:行者123 更新时间:2023-12-03 17:54:37 25 4
gpt4 key购买 nike

我在 R 中有一个函数 take 可以采用一些默认值或自定义用户函数:

myfun = function(x = c('funA', 'funB', 'funC'), customFUN = NULL)
{
}

如果用户为 x 选择任何默认列出的值,则 customFUN 将被忽略。
在 R 中处理这个问题的最佳方法是什么?

我可以使用
myfun = function(x = c('funA', 'funB', 'funC'), customFUN = NULL)
{

if (! is.null(customFUN)) {
choosenFUN = match.fun(customFUN)
}
else {
choosenFUN.string = match.arg(x)

if (choosenFUN == 'funA')
choosenFUN = algorithmA
else if (choosenFUN == 'funB')
choosenFUN = algorithmB
#...and so on for the other defaults
}

}

但是添加额外的 arg customFUN 似乎很奇怪,也许有一种聪明的方法可以做到这一点。
谢谢!

最佳答案

我想我明白了,感谢评论:

myfun = function(x = c('funA', 'funB', 'funC'))
{
if (is.function(x))
func = x
else
func.string = switch(match.arg(x), funA = 'UseA', funB = 'UseB', funC = 'Usec')

if (func.string == 'UseA')
func = algorithmA
else if (func.string == 'UseB')
func = algorithmB
# and so on

func
}

关于r - R中的匹配函数arg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318096/

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