Contraer columnas agrupando variables (en base)

Tengo una variable de texto y una variable de agrupación. Me gustaría contraer la variable de texto en una cadena por fila (combinar) por factor. Entonces, siempre que la columna del grupo digam Quiero agrupar el texto y así sucesivamente. Proporcioné un conjunto de datos de muestra antes y después. Estoy escribiendo esto para un paquete y hasta ahora he evitado toda dependencia de otros paquetes, exceptowordcloud y quisiera mantenerlo así.

Sospechorle puede ser útil concumsum pero no he podido resolver esto.

Gracias de antemano

Cómo se ven los datos

                                 text group
1       Computer is fun. Not too fun.     m
2               No its not, its dumb.     m
3              How can we be certain?     f
4                    There is no way.     m
5                     I distrust you.     m
6         What are you talking about?     f
7       Shall we move on?  Good then.     f
8 Im hungry.  Lets eat.  You already?     m

¿Cómo me gustaría que se vean los datos?

                                                       text group
1       Computer is fun. Not too fun. No its not, its dumb.     m
2                                    How can we be certain?     f
3                          There is no way. I distrust you.     m
4 What are you talking about? Shall we move on?  Good then.     f
5                       Im hungry.  Lets eat.  You already?     m

Los dato

dat <- structure(list(text = c("Computer is fun. Not too fun.", "No its not, its dumb.", 
"How can we be certain?", "There is no way.", "I distrust you.", 
"What are you talking about?", "Shall we move on?  Good then.", 
"Im hungry.  Lets eat.  You already?"), group = structure(c(2L, 
2L, 1L, 2L, 2L, 1L, 1L, 2L), .Label = c("f", "m"), class = "factor")), .Names = c("text", 
"group"), row.names = c(NA, 8L), class = "data.frame")

EDITAR Descubrí que puedo agregar una columna única para cada ejecución de la variable de grupo con:

x <- rle(as.character(dat$group))[[1]]
dat$new <- as.factor(rep(1:length(x), x))

Flexible

                                 text group new
1       Computer is fun. Not too fun.     m   1
2               No its not, its dumb.     m   1
3              How can we be certain?     f   2
4                    There is no way.     m   3
5                     I distrust you.     m   3
6         What are you talking about?     f   4
7       Shall we move on?  Good then.     f   4
8 Im hungry.  Lets eat.  You already?     m   5

Respuestas a la pregunta(4)

Su respuesta a la pregunta