【发布时间】:2016-07-01 20:18:26
【问题描述】:
我想为数据框中的每个组分配数字。例如,我有以下数据框:
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
我可以使用如下的for循环来解决这个问题:
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
我想知道是否可以在不使用 for 循环的情况下以更优雅和更实用的方式解决这个问题?具体来说,我想知道这是否可以使用dplyr::group_by函数来完成?
【问题讨论】:
标签: r group-by functional-programming dplyr