Indexing R:按组和年份划分的指数,同一组和年份的数字相似
我有一个数据框架,显示了父母和年份的孩子出生情况。我需要的是一个新的列,该列对每个孩子的出生顺序进行索引,但如果来自同一父母的两个孩子在同一年出生,则提供相同的数字。数据如下:Indexing R:按组和年份划分的指数,同一组和年份的数字相似,indexing,dplyr,counter,identifier,Indexing,Dplyr,Counter,Identifier,我有一个数据框架,显示了父母和年份的孩子出生情况。我需要的是一个新的列,该列对每个孩子的出生顺序进行索引,但如果来自同一父母的两个孩子在同一年出生,则提供相同的数字。数据如下: >df1 id year name parent1 2001 bas parent1 2002 jack parent2 1991 david parent3 1993 daniel parent3 1993 jasper parent3 1994 melany parent4
>df1
id year name
parent1 2001 bas
parent1 2002 jack
parent2 1991 david
parent3 1993 daniel
parent3 1993 jasper
parent3 1994 melany
parent4 1997 john
parent4 1999 gerard
到目前为止,我为每位家长每年的孩子创建了一个指数,但即使孩子出生在同一年,他们的数字也会不断上升。我使用了以下代码:
> df2 <- df1 %>% group_by(id) %>% mutate(order = row_number(year))
> df2
id year name order
parent1 2001 bas 1
parent1 2002 jack 2
parent2 1991 david 1
parent3 1993 daniel 1
parent3 1993 jasper 2
parent3 1994 melany 3
parent4 1997 john 4
parent4 1999 gerard 1
你有解决这个问题的办法吗?我的代码有没有稍微的调整来解决这个问题?提前谢谢 您可以对行数使用密集排列:
id year name order
parent1 2001 bas 1
parent1 2002 jack 2
parent2 1991 david 1
parent3 1993 daniel 1
parent3 1993 jasper 1
parent3 1994 melany 2
parent4 1997 john 3
parent4 1999 gerard 1
df %>% group_by(id) %>% mutate(order = dense_rank(year))
# A tibble: 8 x 4
# Groups: id [4]
# id year name order
# <fctr> <int> <fctr> <int>
#1 parent1 2001 bas 1
#2 parent1 2002 jack 2
#3 parent2 1991 david 1
#4 parent3 1993 daniel 1
#5 parent3 1993 jasper 1
#6 parent3 1994 melany 2
#7 parent4 1997 john 1
#8 parent4 1999 gerard 2