Предположим, что мы имеем следующую базу данных:нумерации групп
ID Shoot hit
1 10 2
1 9 3
1 8 1
2 10 8
2 8 8
2 11 10
2 7 2
3 9 2
4 6 6
4 6 5
.
.
И я хотел бы иметь его с номерами, присвоенными в каждой группе, в данном случае на ID, такие как:
ID Shoot hit number.in.group
1 10 2 1
1 9 3 2
1 8 1 3
2 10 8 1
2 8 8 2
2 11 10 3
2 7 2 4
3 9 2 1
4 6 6 1
4 6 5 2
.
.
I может сделать это легко, используя петлю. Что-то вроде это будет работать:
df$number.in.group = rep(1,nrow(df))
for(i in 2:nrow(df))
if(df$ID[i]==df$ID[i-1]){
df$number.in.group[i] = df$number.in.group[i-1] + 1 }
Мой вопрос, есть ли функция или более элегантный способ сделать это, кроме использования цикла?
Мы вообще не беспокоиться о датах, когда маркировка вопросы как дубликаты. На другой вопрос есть более качественные ответы. – zwol