В этом случае, как я могу передать аргумент непосредственно в точку точка точка в R? Без изменения функций и, предпочтительно, не полагаясь на положение, например, например,
fun_inner <- function(other_arg = NA, a){
print(paste("inner:", a))
a
}
fun_outer <- function(a, ...){
outer <- a
print(paste("outer:", a))
inner <- fun_inner(...)
paste("inner not equal to outer?", inner != outer)
}
, например, как-то так ... но это, очевидно, не работает
fun_outer(a = 1, ... = list(a = 2))
Опять же, ограничения заключаются в том, что я 'я бы предпочел изменять только введенные аргументы (вместо того, чтобы переписывать эти функции)
# e.g. could create wrapper function for `fun_outer()` to call
# that has w/ different names (or other analagous approach),
# but would rather avoid...
fun_inner_wrapper <- function(other_arg, b){
fun_inner(other_arg = other_arg, a = b)
}
, и также предпочел бы не полагаться просто на позицию аргумента.
# e.g. this inputs different values for `a` argument for `fun_inner()` and
# `fun_outer()`, but is reliant on giving a positional input for `other_arg` which I
# would prefer not to do...
fun_outer(1, 2, 3)
[1] "outer: 1"
[1] "inner: 3"
[1] "inner not equal to outer? TRUE"