我有这样一个数据集:
| 客户端ID|相互作用_1|相互作用_2|转化|
| - ------|- ------|- ------|- ------|
| A类|1个|无|无|
| 乙|无|1个|无|
| C级|无|无|1个|
| A类|无|无|1个|
| 乙|无|1个|无|
| 乙|无|无|1个|
| C级|无|1个|无|
| C级|无|无|1个|
数据集已经根据时间戳(升序)排序,交互和转换列都是空的(0/1),对于每个转换,我需要计算client_id进行交互或转换的数量,但只自上次转换以来的交互(因此,列"lag_conversion"永远不能〉1)。
输出应如下所示:
| 客户端ID|相互作用_1|相互作用_2|转化|滞后_相互作用_1|滞后相互作用2|滞后转换|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| A类|1个|无|无|无|无|无|
| 乙|无|1个|无|无|无|无|
| C级|无|无|1个|无|无|无|
| A类|无|无|1个|1个|无|无|
| 乙|无|1个|无|无|无|无|
| 乙|无|无|1个|无|第二章|无|
| C级|无|1个|无|无|无|无|
| C级|无|无|1个|无|1个|1个|
我试过密码:
for (i in 1:nrow(mydata)) {
client_id <- mydata$client_id[i]
if (mydata$conversion[i] == 1) {
last_conversion_index <- max(which(mydata$client_id == client_id & mydata$conversion== 1 & 1:nrow(mydata) <= i))
mydata$interaction_1[i:last_conversion_index & mydata$interaction_1== 1] <- 1
}
}
尽管这只会在行本身中产生1,这意味着第一行看起来像:
| 客户端ID|相互作用_1|相互作用_2|转化|滞后_相互作用_1|滞后相互作用2|滞后转换|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| A类|1个|无|无|1个|无|无|
任何帮助都是非常感谢!提前感谢
1条答案
按热度按时间pdtvr36n1#
使用
dplyr
:低于1.1.0: