Dplyr Mutate_each para conjuntos de columnas emparejados

¿Hay alguna manera de lograr la siguiente transformación usando dplyr :: mutate_each?

data.frame(x1 = 1:5, x2 = 6:10, y1 = rnorm(5), y2 = rnorm(5)) %>%
  mutate(diff1 = x1 - y1, diff2 = x2 - y2) 

##   x1 x2          y1         y2       diff1     diff2
## 1  1  6  1.03645018 -0.8602099 -0.03645018  6.860210
## 2  2  7 -1.10790835  1.6912875  3.10790835  5.308712
## 3  3  8  0.95452119  2.7232657  2.04547881  5.276734
## 4  4  9  0.01370762  1.6385765  3.98629238  7.361424
## 5  5 10  0.19354354 -1.0464360  4.80645646 11.046436

Me doy cuenta de que este es un ejemplo trivial y se hace fácilmente como lo he descrito, pero estoy tratando de lograr algo similar con un conjunto de columnas mucho más grande.

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta