在R中按组创建连续年份计数
我是新手。我正在寻找一个dplyr解决方案(最好)来创建一个向量,显示一个组内连续的年数。如果序列被任何间隙中断,计数器应重新启动,即使它是同一组 我的数据与此类似:在R中按组创建连续年份计数,r,dplyr,tidyr,lubridate,R,Dplyr,Tidyr,Lubridate,我是新手。我正在寻找一个dplyr解决方案(最好)来创建一个向量,显示一个组内连续的年数。如果序列被任何间隙中断,计数器应重新启动,即使它是同一组 我的数据与此类似: 库(lubridate) #> #>附加包装:“lubridate” #>以下对象已从“package:base”屏蔽: #> #>日期、相交、设置差异、联合 图书馆(magrittr) 图书馆(tidyverse) dfn()将为您提供组中的观察次数 df1 <- df %>% group_by(ref
库(lubridate)
#>
#>附加包装:“lubridate”
#>以下对象已从“package:base”屏蔽:
#>
#>日期、相交、设置差异、联合
图书馆(magrittr)
图书馆(tidyverse)
dfn()
将为您提供组中的观察次数
df1 <- df %>%
group_by(ref, branch, unit, client, group) %>%
mutate(seq_count = n())
df1%
分组依据(参考、分行、单位、客户、集团)%>%
变异(seq_count=n())
如果您只需要摘要,可以使用摘要
而不是变异
。您可以创建另一个组,该组将在年与年之间出现间隔时更改
library(dplyr)
df %>%
add_count(group, grp = cumsum(year - lag(year, default = first(year)) > 1),
name = 'seq_count')
# A tibble: 9 x 9
# id ref branch year unit client group grp seq_count
# <dbl> <dbl> <chr> <dbl> <chr> <chr> <chr> <int> <int>
#1 1 561 LA 2000 x y z 0 6
#2 2 561 LA 2001 x y z 0 6
#3 3 561 LA 2002 x y z 0 6
#4 4 561 LA 2003 x y z 0 6
#5 5 561 LA 2004 x y z 0 6
#6 6 561 LA 2005 x y z 0 6
#7 7 561 LA 2007 x y z 1 3
#8 8 561 LA 2008 x y z 1 3
#9 9 561 LA 2009 x y z 1 3
df %>%
group_by(group, grp = cumsum(year - lag(year, default = first(year)) > 1)) %>%
mutate(seq_count = n())