У меня есть набор данных, который выглядит следующим образом:
User<- c("User1", "User1","User1", "User1","User1", "User1","User1", "User2","User2","User2","User2","User2","User2","User2")
Touchpoints <- c("A", "B", "C", "F", "D", "E", "H","A", "B", "K", "D", "E", "F", "M")
Conversion <- c(0,0,0,1,0,0,1,0,0,1,1,0,0,1)
Frequency<-c(1,2,3,0,4,5,0,1,2,0,0,3,4,5)
df<-data.frame(User, Touchpoints, Conversion, Frequency)
df$Exponential<-ifelse(df$Frequency>0, exp(df$Frequency), 0)
df
User Touchpoints Conversion Frequency Exponential
1 User1 A 0 1 2.718282
2 User1 B 0 2 7.389056
3 User1 C 0 3 20.085537
4 User1 F 1 0 0.000000
5 User1 D 0 4 54.598150
6 User1 E 0 5 148.413159
7 User1 H 1 0 0.000000
8 User2 A 0 1 2.718282
9 User2 B 0 2 7.389056
10 User2 K 1 0 0.000000
11 User2 D 1 0 0.000000
12 User2 E 0 3 20.085537
13 User2 F 0 4 54.598150
14 User2 M 1 5 148.413159
Вот что я пытаюсь сделать:
Я хочу взять процент от значения Exponential
, представленного как_Conv
от суммы столбца Exponential
на User
до этого значения Conversion
.Вот пример:
User Touchpoints Conversion Frequency Exponential Sum of Exp 1st_Conv Sum_Exp_for_Conv2 2nd_Conv
1 User1 A 0 1 2.718282 30.192 0.0900 233.204 0.0116
2 User1 B 0 2 7.389056 30.192 0.2447 233.204 0.0317
3 User1 C 0 3 20.085537 30.192 0.6652 233.204 0.0861
4 User1 F 1 0 0.000000 0 0.0000 233.204 0
5 User1 D 0 4 54.598150 0 0.0000 233.204 0.2341
6 User1 E 0 5 148.413159 0 0.0000 233.204 0.6364
7 User1 H 1 0 0.000000 0 0.0000 0 0
8 User2 A 0 1 2.718282 10.107 0.2689 10.107 0.2689
9 User2 B 0 2 7.389056 10.107 0.7311 10.107 0.7311
10 User2 K 1 0 0.000000 0 0.0000 0 0
11 User2 D 1 0 0.000000 0 0.0000 0 0
12 User2 E 0 3 20.085537 0 0.0000 0 0
13 User2 F 0 4 54.598150 0 0.0000 0 0
14 User2 M 0 5 148.413159 0 0.0000 0 0
Будут случаи, когда на одного пользователя будет приходиться более 100 конверсий, и при таком способе будут создаваться тысячи столбцов, кажется, что он не масштабируется.
Мой конечный результат - сложить все _Conv
в один последний столбец с именем Final_Conv
.Для этого примера конечный результат будет выглядеть следующим образом:
User Touchpoints Conversion Frequency Final_Conv
1 User1 A 0 1 0.1017
2 User1 B 0 2 0.2764
3 User1 C 0 3 0.7514
4 User1 F 1 0 0
5 User1 D 0 4 0.2341
6 User1 E 0 5 0.6364
7 User1 H 1 0 0
8 User2 A 0 1 0.5379
9 User2 B 0 2 1.4621
10 User2 K 1 0 0
11 User2 D 1 0 0
12 User2 E 0 3 0
13 User2 F 0 4 0
14 User2 M 0 5 0
Любая помощь будет отличной, спасибо!