gpt4 book ai didi

r - 防止部分参数匹配

转载 作者:行者123 更新时间:2023-12-03 14:20:42 26 4
gpt4 key购买 nike

我有一个R函数:

myFunc <- function(x, base='') {
}


我现在扩展该函数,允许使用一组任意的额外参数:

myFunc <- function(x, base='', ...) {
}


如何禁用 base参数上的部分参数匹配?我不能将 ...放在 base=''之前,因为我想保持该函数的向后兼容性(通常将其称为 myFunction('somevalue', 'someothervalue'),而没有明确命名 base)。

我被这样调用我的函数而感到st:

myFunc(x, b='foo')


我希望这表示 base='', b='foo',但是R使用部分匹配并假定 base='foo'

我是否可以在 myFunc中插入一些代码,以确定传入的参数名称,并且仅将确切的“基数”与 base参数匹配,否则将其分组为 ...的一部分?

最佳答案

这是一个主意:

myFunc <- function(x, .BASE = '', ..., base = .BASE) {
base
}

## Takes fully matching named arguments
myFunc(x = "somevalue", base = "someothervalue")
# [1] "someothervalue"

## Positional matching works
myFunc("somevalue", "someothervalue")
# [1] "someothervalue"

## Partial matching _doesn't_ work, as desired
myFunc("somevalue", b="someothervalue")
# [1] ""

关于r - 防止部分参数匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15264994/

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