Iterando una función a través de diferentes columnas de un data.frame que coincide con un patrón en los nombres de columna

Quiero iterar una función a través de diferentes columnas (con un patrón común en los nombres de columna) de un data.frame. Para subcontratar el data.frame yo uso este código que funciona:

df[,grep("abc", colnames(df))]

pero no sé cómo aplicar mi función f (x) a todas las columnas que coinciden con este patrón, ya sea utilizando una función de bucle for o lapply.

La función que estoy usando es:

compress= function(x) {
  aggregate(df[,x,drop=FALSE],
        list(hour = with(df,paste(dates(Time),
                                         sprintf("%d:00:00",hours(Time))))),
        sum,na.rm=TRUE)
}

donde df (el marco de datos) y el Tiempo se podrían establecer como variables, pero por el momento no necesito hacerlo.

Gracias Giulia

Respuestas a la pregunta(1)

Su respuesta a la pregunta