R 沿两个分组变量排序
我想使用R 沿两个分组变量排序,r,dplyr,R,Dplyr,我想使用row\u number()沿两个变量生成一个序列,但结果并不像我预期的那样 library(tidyverse) #> Warning: package 'tidyverse' was built under R version 3.6.3 #> Warning: package 'ggplot2' was built under R version 3.6.3 #> Warning: package 'tibble' was built under R versio
row\u number()
沿两个变量生成一个序列,但结果并不像我预期的那样
library(tidyverse)
#> Warning: package 'tidyverse' was built under R version 3.6.3
#> Warning: package 'ggplot2' was built under R version 3.6.3
#> Warning: package 'tibble' was built under R version 3.6.3
#> Warning: package 'tidyr' was built under R version 3.6.2
#> Warning: package 'purrr' was built under R version 3.6.2
#> Warning: package 'dplyr' was built under R version 3.6.3
#> Warning: package 'forcats' was built under R version 3.6.3
test <- data.frame(model = c("iron", "iron", "iron", "steel", "steel"), year = c(2010, 2011, 2012, 2008, 2009))
test %>% group_by(model, year) %>% mutate(number = row_number())
#> # A tibble: 5 x 3
#> # Groups: model, year [5]
#> model year number
#> <fct> <dbl> <int>
#> 1 iron 2010 1
#> 2 iron 2011 1
#> 3 iron 2012 1
#> 4 steel 2008 1
#> 5 steel 2009 1
如何实现此结果?如果按列对u进行分组,R将为每个列创建一个“分区”,在每个分区内,行号将递增。从预期输出来看,似乎不需要分组
> df %>% mutate(number = row_number())
model year number
1 iron 2010 1
2 iron 2011 2
3 iron 2012 3
>
然后,您希望仅根据模型进行分组:
> test %>% group_by(model) %>% mutate(number = row_number())
# A tibble: 5 x 3
# Groups: model [2]
model year number
<chr> <dbl> <int>
1 iron 2010 1
2 iron 2011 2
3 iron 2012 3
4 steel 2008 1
5 steel 2009 2
>
>test%>%group\u by(model)%>%mutate(number=row\u number())
#一个tibble:5x3
#分组:模型[2]
车型年款
1铁2010 1
2铁2011 2
3铁2012 3
4钢铁2008 1
5钢铁2009 2
>
谢谢。我在我的例子中犯了一个错误。我更新了我的问题来说明我为什么需要分组。更新了答案,对你有用吗?
> test %>% group_by(model) %>% mutate(number = row_number())
# A tibble: 5 x 3
# Groups: model [2]
model year number
<chr> <dbl> <int>
1 iron 2010 1
2 iron 2011 2
3 iron 2012 3
4 steel 2008 1
5 steel 2009 2
>