У меня есть таблица данных, как это:Присвоение значений группы на основе предыдущих строк в R
ID Type
1 I
1 A
1 A
2 I
2 A
2 I
2 C
2 I
2 I
Я хочу, чтобы добавить последовательность столбцов, как показано ниже:
ID Type Seq
1 I 1
1 A 1
1 A 1
2 I 1
2 A 1
2 I 2
2 C 2
2 I 3
2 I 4
Логика:
= Seq previous_row_for_user_where_I_occurs +1, когда тип = I
Seq = предыдущая возникновение I для пользователя, если выбран тип = A или C
Так что в основном для данного номера пользователя все вхождения I последовательно. Если A или C происходит между ними, тогда присвойте ему значение I, которое происходит до него. Идентификаторы были отсортированы с использованием поля даты.
Я также ссылался на нижеследующее, но это не помогло, потому что, если «А» встречается дважды для пользователя, второе вхождение неправильно пронумеровано.
Assigning values in a sequence depending on previous row in R
Я использую цикл for, который занимает часы, поскольку у меня 10 миллионов строк.
Параметр 'столбец type' отсутствует в первой таблице данных. Также ваша логика неясна для последующих повторений. Будет ли подсчет подсчета с 3,4, ... когда появятся более кратные числа? –
Я внес изменения в исходный вопрос. –