Pasar argumento faltante de una función a otra en R

He aprendido que es una práctica común usar argumentos opcionales en la función y verificarlos con missing () (por ejemplo, como se discute enSO 22024082)

En este ejemplo, round0 es el argumento opcional (lo sé, round0 podría definirse como lógico).

foo = function(a, round0) {
    a = a * pi
    if(!missing(round0)) round(a)
    else a
}

Pero, ¿qué pasa si llamo a esta función desde otra función, cómo puedo pasar "falta"?

bar = function(b) {
    if(b > 10) round1=T
    foo(b, round1)
}

Si b <10, entonces round1 en bar () no está definido, pero de todos modos se pasa a foo. Si modifico foo ():

foo = function(a, round0) {
    a = a * pi
    print(missing(round0))
    print(round0)
    if(!missing(round0)) round(a)
    else a
}

y ejecutar la barra (9) la salida es:

bar(9)
[1] FALSE
Error in print(round0) : object 'round1' not found
Called from: print(round0)

Eso significa: no falta round0, pero tampoco se puede acceder.

No quiero usar diferentes llamadas de función en bar (), si hay varios argumentos opcionales en foo (), tendría que escribir una llamada de función para cada combinación faltante / no faltante, combinación de todos los argumentos opcionales.

¿Es posible pasar "falta", o qué otra solución se aplicaría para este problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta