Pega varias columnas juntas

Tengo un montón de columnas en un marco de datos que quiero pegar (separadas por "-") de la siguiente manera:

data <- data.frame('a' = 1:3, 
                   'b' = c('a','b','c'), 
                   'c' = c('d', 'e', 'f'), 
                   'd' = c('g', 'h', 'i'))
i.e.     
     a   b   c  d  
     1   a   d   g  
     2   b   e   h  
     3   c   f   i  

Que quiero ser:

a x  
1 a-d-g  
2 b-e-h  
3 c-f-i  

Normalmente podría hacer esto con:

within(data, x <- paste(b,c,d,sep='-'))

y luego eliminar las columnas antiguas, pero desafortunadamente no conozco los nombres de las columnas específicamente, solo un nombre colectivo para todas las columnas, p. Yo sabría quecols <- c('b','c','d')

¿Alguien sabe una manera de hacer esto?

Respuestas a la pregunta(8)

Su respuesta a la pregunta