我的数据集看起来像这样:
id chan. conv.
1 5 0
1 8 0
2 3 0
2 5 0
2 4 0
2 7 1
3 6 0
3 3 0
3 7 1
4 3 0
4 8 0
基本上每当chan.
栏中出现7时,就意味着产品已经售出,而当8出现时,这意味着它没有被出售。 id
长度可能非常不同,我想知道如何删除7或8行,但更改上面的行,以便显示项目是否已转换。所以数据集看起来像这样:
id chan. conv.
1 5 0
2 3 0
2 5 0
2 4 1
3 6 0
3 3 1
4 3 0
答案 0 :(得分:0)
尝试以下方法:
library(dplyr)
df %>%
mutate(conv. = lead(case_when(chan. == 7 ~ 1, TRUE ~ 0))) %>%
filter(chan. != 7 & chan. != 8)
如果您确定每次conv. == 7
chan.
中的相应行等于1,您都可以跳过case_when
步骤并尝试以下操作:
df %>%
mutate(conv. = lead(conv.)) %>%
filter(chan. != 7 & chan. != 8)
返回:
id chan. conv.
1 1 5 0
2 2 3 0
3 2 5 0
4 2 4 1
5 3 6 0
6 3 3 1
7 4 3 0