¿Cómo aplicar una prueba de shapiro por grupos en R?

Tengo un marco de datos donde todas mis 90 variables tienen datos enteros, del tipo:

código | variable1 | variable2 | variable3 | ...

AB | 2 | 3 | 10 | ...

AH | 4 | 6 | 8 | ...

BC | 1 | 5 | 9 | ...

... | ... | ... | ...

Quiero aplicar una prueba de shapiro (shapiro.test {stats}) a mi marco de datos por variable y escribir los resultados en una tabla como:

variable_name | W | valor p

¿Alguien tiene una pista?

Respuestas a la pregunta(2)

Su respuesta a la pregunta