Я хочу дать числа для каждой группы в dataframe. Например, у меня есть следующий dataframe:Как указать числа для каждой группы данных с dplyr :: group_by?
df = data.frame(from = c('a', 'a', 'b'), dest = c('b', 'c', 'd'))
#> df
#from dest
#1 a b
#2 a c
#3 b d
Я хочу, чтобы сгруппировать по from
значениям и дают номер группы для каждой группы. Это ожидаемый результат:
result = data.frame(from = c('a', 'a', 'b'), dest = c('b', 'c', 'd'), group_no = c(1,1,2))
#> result
#from dest group_no
#1 a b 1
#2 a c 1
#3 b d 2
я могу решить эту проблему, используя для цикла следующим образом:
groups = df$from %>% unique
i = 0
df$group_no = NA
for (g in groups) {
i = i + 1
df[ df$from == g, ]$group_no = i
}
#> df
#from dest group_no
#1 a b 1
#2 a c 1
#3 b d 2
Интересно, если это возможно, чтобы решить эту проблему в более элегантный и функциональный способ без использование для циклов? В частности, мне интересно, можно ли это сделать с помощью функции dplyr::group_by
?
Нет необходимости использовать group_by вообще. df%>% mutate (group_no = as.integer (from)) OP движется в неправильном направлении. –
Редактирование, чтобы упомянуть, что, как вы прокомментировали ... – alistaire
@ Грегор Это похоже на консенсус. Я отредактирую и упрощу. – alistaire