如何在R中创建链接计数器

时间:2019-02-26 17:56:34

标签: r

我正在尝试根据事件的值创建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加1。当事件B或C发生时,我想将计数器BC加1。

我使用了“链接”一词,因为在Excel中,我只是使用if公式创建用于增加A和BC的post_counters的逻辑,然后将pre_counters滞后以便它们等于上一个中的适当post_counter行。

我尝试在R中使用ifelse语句,但不确定如何同时增加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。

感谢您的帮助。

0 个答案:

没有答案