Imprimir dimensiones del marco de datos en cada paso del filtrado

Estoy usando el tidyverse para filtrar un marco de datos y me gustaría imprimir en cada paso de las dimensiones (o nrows) de los objetos intermedios. Pensé que podría simplemente usar un operador de tubería en T de magrittr, pero no funciona. Creo que entiendo el concepto detrás de la tubería de salida, pero no puedo entender qué está mal. Busqué mucho pero no encontré muchos recursos sobre el tubo de salida.

Construí un ejemplo simple con el conjunto de datos mtcars. Imprimir los objetos intermedios funciona pero no si lo reemplazo con dim () o nrow ().

library(tidyverse)
library(magrittr)

mtcars %>% 
    filter(cyl > 4) %T>% dim() %>%
    filter(am == 0) %T>% dim() %>%
    filter(disp >= 200) %>% dim()

Por supuesto, puedo escribir eso en R base, pero me gustaría mantener el espíritu tidyverse. Probablemente haya pasado por alto algo sobre el concepto de tubería en T y cualquier comentario / solución será muy apreciado.

EDITAR: Siguiendo @hrbrmstr y @akrun respuestas agradables y rápidas, intenté nuevamente apegarme al operador del tubo en T sin escribir una función. No sé por qué no descubrí la respuesta anteriormente, pero aquí está la sintaxis que estaba buscando:

mtcars %>% filter(cyl > 4) %T>% {print(dim(.))} %>% filter(am == 0) %T>% {print(dim(.))} %>% filter(disp >= 200) %>% {print(dim(.))}

A pesar de la necesidad de una función, la solución @hrbrmstr es más fácil de "limpiar".

Respuestas a la pregunta(4)

Su respuesta a la pregunta