Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 沿两个分组变量排序_R_Dplyr - Fatal编程技术网

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
>