У меня есть кадр данных с двумя столбцами: первый столбец содержит группу, к которой принадлежит каждый человек, а второй идентификатор человека. Смотрите ниже:Создайте новый столбец в фрейме данных: индекс в группе (не уникален между группами)
df <- data.frame(group=c('G1','G1','G1','G1','G2','G2','G2','G2'),
indiv=c('indiv1','indiv1','indiv2','indiv2','indiv3',
'indiv3','indiv4','indiv4'))
group indiv
1 G1 indiv1
2 G1 indiv1
3 G1 indiv2
4 G1 indiv2
5 G2 indiv3
6 G2 indiv3
7 G2 indiv4
8 G2 indiv4
Я хотел бы создать новый столбец в моем кадре данных (сохраняя длинный формат) с индексом каждого индивида в группе, то есть:
group indiv Ineed
1 G1 indiv1 1
2 G1 indiv1 1
3 G1 indiv2 2
4 G1 indiv2 2
5 G2 indiv3 1
6 G2 indiv3 1
7 G2 indiv4 2
8 G2 indiv4 2
У меня есть пробовал с методами data.table .N или .GRP, без успеха (хорошая работа на data.table, кстати!).
Любая помощь очень ценится!
@DavidArenburg Хорошие варианты. Я забыл про метод 'as.numeric (factor'. Не знал о' rleid' – akrun
@akrun 'rleid' является одной из 5 новых функций, добавленных Аруном всего неделю назад. –