Я не уверен, действительно ли название действительно отражает то, что я хочу делать. В конечном итоге я хочу выбрать строки по группам, которые имеют определенный шаблон в столбце ActionType
. Переменная группировки - email
. Для каждого email
, если первая строка ActionType
является победой, я хочу ее удалить и посмотреть на вторую строку. Если вторая строка ActionType
является победой, я хочу ее удалить и перейти к следующей строке и так далее.Выберите строки, основанные на вхождениях в другом столбце. R
В основном условие 1 - это первая строка для каждого электронного письма, которая должна быть чем угодно, кроме победы.
Следующий раз, когда все было удовлетворено, я хочу выбрать все, начиная с первой строки (это ничего, кроме выигрыша) до следующей победы.
Затем процесс повторяется, пока не будут проверены все строки по группам. Меня не волнуют строки, которые происходят после победы, если они не предшествуют другой победе. Также, если две победы вернутся назад, я хочу выбрать строки до первой победы (включая эту победу). Удалите тот, который происходит после, а затем продолжите проверку строк и сохранение тех, которые предшествуют другому выигрышу.
Я пробовал использовать cumsum
с dplyr
и data.table
, но мне, возможно, придется сделать это в несколько этапов.
Вот как выглядит мои данные:
email Action ActionType Date
wwww Company won 1/17/14
wwww Company trial 1/22/14
wwww Event Meeting 1/24/14
wwww Event Meeting 2/24/14
wwww Gmail Email 9/10/14
wwww Company won 9/11/14
wwww Company won 9/25/14
wwww Event Support 10/7/14
wwww Company won 10/22/14
wwww Company won 12/31/14
wwww Gmail Email 2/13/15
wwww Gmail Email 2/27/15
wwww Gmail Email 3/6/15
wwww Gmail Email 3/26/15
wwww Gmail Email 4/20/15
wwww Gmail Email 4/24/15
wwww Gmail Email 5/13/15
xxxx Company trial 1/17/14
xxxx Gmail Email 1/22/14
xxxx Event Meeting 1/24/14
xxxx Company won 2/24/14
xxxx Gmail Email 9/10/14
xxxx Gmail Email 9/11/14
xxxx Gmail Email 9/25/14
xxxx Gmail Email 10/7/14
xxxx Gmail Email 10/22/14
yyyy Company won 1/24/14
yyyy Company trial 2/24/14
yyyy Task Call 9/10/14
yyyy Task Call 9/11/14
yyyy Task Call 9/25/14
yyyy Company won 10/7/14
yyyy Gmail Email 10/22/14
yyyy Gmail Email 12/31/14
zzzz Company won 9/11/14
zzzz Company won 9/25/14
zzzz Task Call 10/7/14
zzzz Task Call 10/22/14
zzzz Company trial 12/31/14
zzzz Gmail Email 2/13/15
zzzz Company won 2/27/15
zzzz Gmail Email 3/6/15
zzzz Gmail Email 3/26/15
Так что я хотел бы конечный результат, чтобы выглядеть следующим образом.
email Action ActionType Date
wwww Company trial 1/22/14
wwww Event Meeting 1/24/14
wwww Event Meeting 2/24/14
wwww Gmail Email 9/10/14
wwww Company won 9/11/14
wwww Event Support 10/7/14
wwww Company won 10/22/14
xxxx Company trial 1/17/14
xxxx Gmail Email 1/22/14
xxxx Event Meeting 1/24/14
xxxx Company won 2/24/14
yyyy Company trial 2/24/14
yyyy Task Call 9/10/14
yyyy Task Call 9/11/14
yyyy Task Call 9/25/14
yyyy Company won 10/7/14
zzzz Task Call 10/7/14
zzzz Task Call 10/22/14
zzzz Company trial 12/31/14
zzzz Gmail Email 2/13/15
zzzz Company won 2/27/15
Мне любопытно, что ваши попытки с 'cumsum' выглядеть. Это похоже на правильный инструмент для работы. – Frank
Почему компания 'xxxx выиграла 2/24/14'? И так же «zzzz Cirrus выиграл 2/27/15' ... – Frank
' xxxx Компания выиграла 2/24/14' включена, так как перед ней есть ActionTypes, которые не «выигрывают». И то же самое для 'zzzz Cirrus выиграл 2/27/15', так как первые две строки для этого домена« выигрывают », а первое условие - выбирать по группе, где первая строка« ActionType! = 'Won'' – Hillary