У меня есть входные данные следующим образом.R: проверка числа по вертикали с заданным условием (сортировка со временем)
A <- read.csv(text="Date,User,Deal
1/1/2017,A,FALSE
1/2/2017,A,TRUE
1/3/2017,A,FALSE
1/4/2017,A,FALSE
1/5/2017,A,TRUE
1/6/2017,A,FALSE
1/7/2017,A,FALSE
1/6/2017,B,TRUE
1/7/2017,B,TRUE")
После данных, сгруппированных пользователем, отсортированных с датой, я хочу, чтобы сохранить запись с Deal = T, и дополнительный столбец, чтобы следить за количеством записей происходит до этого курса = TRUE для данного пользователь. Таким образом, ожидаемый выход:
Date User Deal NO.Actions
1/2/2017 A TRUE 2
1/5/2017 A TRUE 3
1/6/2017 B TRUE 1
1/7/2017 B TRUE 1
Любой способ достичь этого? Эффективность также будет представлять собой проблему.
Обновление: дополнительный столбец получен из подсчета количества ложных значений до True, просмотрев столбец сделки для данного пользователя.
Можете ли вы предоставить ** более подробную информацию о дополнительной колонке ** –
Нет времени для полного ответа, но предполагая, что dataframe заказана? user и date, это willl производит '2,3,1,1':' as.vector ( sapply (уникальный (A $ User), function (x) diff (c (0, который (A [A $ User = = x, «Сделка»] == T)))) ) ' – Jean
совершенно неясно. Что вы подразумеваете под «отслеживанием количества записей, которые происходят до этого Deal = T'? Можете ли вы предоставить некоторые детали своих расчетов? –