Dividir un marco de datos en varios marcos de datos

Tengo un marco de datos que necesito dividir en varios marcos de datos, basados en búsquedas de expresiones regulares. No hay un patrón establecido para las búsquedas, es decir, a veces hay una sola expresión regular, a veces una combinación de varias. Aquí hay un ejemplo mínimo con solo un conjunto de filas extraídas:

Name <- c("John", "Jane", "Arthur", "Maggie")
Age <- c(20, 30, 31, 33)
City <- c("London", "Paris", "New York", "Delhi")

main_df <- data.frame(Name, Age, City)

sub_df <- main_df %>% 
  filter(grepl("J", Name))

main_df <- main_df %>% 
  filter(!grepl("J", Name))

enga en cuenta que estoy extrayendo algunas filas en un nuevo marco de datos y luego eliminando las filas extraídas del marco de datos principal.

Estoy buscando un comando de una sola línea para hacer esto. Ayuda apreciada, especialmente si usadplyr.

Respuestas a la pregunta(3)

Su respuesta a la pregunta