Colocando recuentos de ocurrencias de valor en nuevas variables, ¿cómo hacer eso en R con dplyr?

Tengo un gran marco de datos (df) que se ve así:

structure(list(var1 = c(1, 2, 3, 4, 2, 3, 4, 3, 2), var2 = c(2, 
3, 4, 1, 2, 1, 1, 1, 3), var3 = c(4, 4, 2, 3, 3, 1, 1, 1, 4), 
    var4 = c(2, 2, 2, 2, 3, 2, 3, 4, 1), var5 = c(4, 4, 2, 3, 
    3, 1, 1, 1, 4)), .Names = c("var1", "var2", "var3", "var4", 
"var5"), row.names = c(NA, -9L), class = "data.frame")

  var1 var2 var3 var4 var5
1    1    2    4    2    4
2    2    3    4    2    4
3    3    4    2    2    2
4    4    1    3    2    3
5    2    2    3    3    3
6    3    1    1    2    1
7    4    1    1    3    1
8    3    1    1    4    1
9    2    3    4    1    4

Ahora necesito contar la ocurrencia de valores rowwise y hacer nuevas variables de los recuentos. Este debería ser el resultado:

  var1 var2 var3 var4 var5 n_1 n_2 n_3 n_4
1    1    2    4    2    4   1   2   0   2
2    2    3    4    2    4   0   2   1   2
3    3    4    2    2    2   0   3   1   1
4    4    1    3    2    3   1   1   2   1
5    2    2    3    3    3   0   2   3   0
6    3    1    1    2    1   3   1   1   0
7    4    1    1    3    1   3   0   1   1
8    3    1    1    4    1   3   0   1   1
9    2    3    4    1    4   1   1   1   2

Como puede ver, la variable n_1 muestra los recuentos de filas de los 1, n_2 los recuentos de filas de los 2, etc.

Probé algunas funciones de dplyr (porque me gusta su velocidad), pero aún no lo he logrado. Sé que este es definitivamente un código feo :-), pero mi enfoque sería algo de esta manera:

newdf <- mutate(rowwise(df, n_1 = sum(df==1))

¿Alguien tiene una idea sobre cómo lidiar con este problema? ¡Muchas gracias de antemano!

Respuestas a la pregunta(3)

Su respuesta a la pregunta