Как создать связанный счетчик в R - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь создать 4 счетчика, как до события, так и после события, основываясь на значении события.Вот пример данных:

pre_counter_A   pre_counter_BC  event  post_counter_A  post counter_BC
0               0              A      1               0
1               0              B      0               1
1               1              C      0               2
1               2              A      2               2
1               2              D      0               0

Как видите, когда происходит событие A, я хочу увеличить счетчик A на единицу.Когда происходит событие B или C, я хочу увеличить счетчик BC на единицу.

Я использовал фразу «связанный», потому что в Excel я просто создал бы логику для увеличения post_counters для A и BCиспользуя формулу if, просто отстаем от pre_counters, чтобы они были равны соответствующему post_counter в предыдущей строке.

Я пытался использовать оператор ifelse в R, но не был уверен, как увеличить как pre_counter, так и post_countersодновременно.

df$post_counter_A <- with(df, ifelse(event == A, pre_counter_A + 1, 
                     lag(pre_counter_A))
df$post_counter_BC <- with(df, ifelse(event == B, pre_counter_BC + 1, 
                              ifelse(event == C, pre_counter_BC + 1,
                              lag(pre_counter_BC)))

Приведенный выше код демонстрирует некоторую логику ifelse, но как мне обновить столбцы pre_counter, чтобы значения корректно обновлялись во всем фрейме данных.

Дополнительным вариантом логики является то, что я хочу установить предел на счетчике, чтобы они сбрасывались после достижения определенного значения, например, 5 или определенного события, например, D, как показано на рисунке.последний ряд таблицы выше.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...