Помещая в новые переменные счетчики значений значений, как это сделать в 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))
У кого-нибудь есть идеи о том, как бороться с этой проблемой? Спасибо заранее!