R agrupar por, contando valores no NA

Tengo un marco de datos que tiene una dispersión de NA

toy_df
# Y  X1 X2 Label
# 5  3  3  A
# 3  NA 2  B
# 3  NA NA C
# 2  NA 6  B

Quiero agrupar esto por el campo de la etiqueta y contar cuántos valores no NA hay en cada variable para cada etiqueta.

desired output:
# Label Y  X1 X2
# A     1  1  1
# B     2  0  2
# C     1  0  0

He hecho esto usando bucles en este momento, pero es lento y desordenado y estoy seguro de que hay una mejor manera.

El agregado parece llegar a la mitad del camino, pero incluye NA en el conteo.

aggregate(toy_df, list(toy_df$label), FUN=length)

Cualquier idea apreciada ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta