Помещая в новые переменные счетчики значений значений, как это сделать в R с помощью dplyr?

У меня большой dataframe (df), который выглядит так:

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

Теперь мне нужно посчитать вхождение значений по строкам и сделать новые переменные отсчетов. Это должно быть результатом:

  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

Как вы можете видеть, переменная n_1 показывает количество строк в 1, n_2 количество строк в 2 и т. Д.

Я попробовал некоторые функции dplyr (потому что мне нравится их скорость), но пока не удалось. Я знаю, что это определенно ужасный код :-), но мой подход был бы таким:

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

У кого-нибудь есть идеи о том, как бороться с этой проблемой? Спасибо заранее!

Ответы на вопрос(3)

Ваш ответ на вопрос