¿Cómo puedo combinar filas dentro del mismo marco de datos en R (basado en valores duplicados en una columna específica)?

Ejemplo de 2 filas de ejemplo (inventadas) en df:

userid   facultyid  courseid schoolid
167       265        NA       1678  
167       71111      301      NA

Supongamos que tengo un par de cientos de ID de usuario duplicados como en el ejemplo anterior. Sin embargo, la gran mayoría de los ID de usuario tienen valores diferentes.

¿Cómo puedo combinar filas con ID de usuario duplicado de manera que se adhieran a los valores de la columna en la primera (de las 2) filas a menos que el primer valor sea NA (en cuyo caso, el NA se repoblará con el valor que provenga del segundo fila)?

En esencia, basándose en el ejemplo anterior, mi salida ideal contendría:

userid   facultyid  courseid schoolid
167       265        301       1678  

Respuestas a la pregunta(4)

Su respuesta a la pregunta