Aplicación de la función a cada grupo y columna del marco de datos R

Necesito aplicar esta función

replace_outliers <- function(column) {
  qnt <- quantile(column, probs=c(.25, .75))
  upper_whisker <- 1.5 * IQR(column)
  clean_data <- column
  clean_data[column > (qnt[2] + upper_whisker)] <- median(column)
  clean_data
}

todos de datos que se ven así:

  Category       a       b       c
       a       2.0     5.0    -5.0
       a       1.5    10.0    10.0
       b       3.2    14.5   100.2
     ...       ...     ...     ...

Tengo que aplicarreplace_outliers para cada categoría aparte y para cada columna. ¿Cómo lograr eso?

Respuestas a la pregunta(3)

Su respuesta a la pregunta