我有一个如下所示的数据框:
dat <- data.frame(Target = c(rep("01", times = 8), rep("02", times = 5),
rep("03", times = 4)),
targ2clicks = c(1, 1, 1, 1, 0, 0 ,0 , 1, 1, 0, 0, 0, 1,
0, 0, 0, 1))
Target targ2clicks
1 01 1
2 01 1
3 01 1
4 01 1
5 01 0
6 01 0
7 01 0
8 01 1
9 02 1
10 02 0
11 02 0
12 02 0
13 02 1
14 03 0
15 03 0
16 03 0
17 03 1
如果每个目标的第一个实例在 targ2clicks 列中为 1,我想从该列中在该目标第一次出现 0 之前删除该列中包含 1 的所有行。但是,如果目标的第一个值为 0,我想保留所有值/行。
我想要的最终结果是:
Target targ2clicks
01 0
01 0
01 0
01 1
02 0
02 0
02 0
02 1
03 0
03 0
03 0
03 1
如果目标的所有实例都是 1,没有 0(不在示例 df 中,但只是为了在任何解决方案中考虑),则应删除该目标的所有行。
我尝试过以各种不同的方式进行编码,但没有成功!非常感谢任何帮助。