Prueba si un argumento de una función se establece o no en R

Tengo una funciónf que toma dos parámetros p1 yp2):

Si para el parámetrop2 no se pasó ningún valor a la función, el valor dep1 ^ 2 debe usarse en su lugar. Pero, ¿cómo puedo averiguar dentro de la función, si se da un valor o no? El problema es que la variablep2 no se inicializa si no hubo valor. Por lo tanto, no puedo probar parap2 siendoNULL.

f <- function(p1, p2) {
    if(is.null(p2)) {
        p2=p1^2
    }
    p1-p2
}

¿De alguna manera es posible verificar si un valor parap2 fue pasado a la función o no? (No pude encontrar unaisset() - función o cosas similares.)

Respuestas a la pregunta(3)

Su respuesta a la pregunta