Advertisement
Guest User

Untitled

a guest
Sep 13th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 2.19 KB | None | 0 0
  1. library(rio)
  2. library(dplyr)
  3.  
  4. df <- rio::import(file = 'sample_y.csv')
  5. allvars <- c('market', 'disk', 'money', 'zen', 'music', 'yandex', 'radio', 'rasp', 'avia', 'realty', 'translate', 'serp', 'tv', 'kinopoik', 'mail', 'metro', 'news')
  6.  
  7. #creating variations
  8. variations <- expand.grid(allvars, allvars, allvars, stringsAsFactors = T, KEEP.OUT.ATTRS = F)
  9. variations %>% mutate_all(.funs = as.character) -> variations
  10.  
  11. #getting unique variations
  12. variationssort <- t(apply(variations, MARGIN = 1, function(x) stringr::str_sort(x)))
  13. variationsortunique <- unique(as.data.frame(variationssort,stringsAsFactors = F))
  14.  
  15. #computing invidividual grows
  16. df %>% select(allvars, profit) -> newdf
  17. everything <- matrix(nrow = 1, ncol = 2, dimnames = list(1,c('diff',"varname")))
  18. for(i in allvars)
  19. {
  20.   newdf %>% group_by(get(eval(i))) %>% summarise(mean = mean(profit, na.rm = T)) %>% transmute(diff = .[2,2]-.[1,2]) %>% .[1,1] -> dftemp
  21.   dftemp %>% mutate(varname = i) -> dftemp
  22.   everything <- rbind(everything, dftemp)
  23. }
  24. rm(dftemp)
  25.  
  26. #computing mutual grow
  27. everything2 <- matrix(nrow = 1, ncol = 4, dimnames = list(1, c('diff', 'V1', 'V2', 'V3')))
  28. for(i in 1:nrow(variationsortunique))
  29. {
  30.   df[,c(paste0(variationsortunique[i,]),'profit')] -> dfshit
  31.   dfshit %>% mutate(need = ifelse(dfshit[,1] == TRUE & dfshit[,2] == TRUE & dfshit[,3] == TRUE,'TRUES',
  32.                     ifelse(dfshit[,1] == FALSE & dfshit[,2] == FALSE & dfshit[,3] == FALSE,'FALSES',NA))) %>%
  33.     group_by(need) %>% summarise(needmean = mean(profit, na.rm = T)) %>% transmute(diff = .[2,2] - .[1,2]) %>% .[1,1] %>% cbind(variationsortunique[i,]) -> dfshittemp
  34.   everything2 <- rbind(everything2, dfshittemp)
  35. }
  36. rm(dfshit, dfshittemp)
  37.  
  38. #comparing
  39. indgrow <- as.data.frame(everything)
  40. mutgrow <- as.data.frame(everything2)
  41. mutgrow %>% slice(-1) %>%
  42.   mutate(diff = unlist(diff),
  43.          V1num = unlist(indgrow[match(.$V1, indgrow[,2]),1]),
  44.          V2num = unlist(indgrow[match(.$V2, indgrow[,2]),1]),
  45.          V3num = unlist(indgrow[match(.$V3, indgrow[,2]),1]),
  46.          indgrows = rowSums(.[5:7]),
  47.          verification = ifelse(diff > indgrows, 'Victory',
  48.                                ifelse(diff < indgrows, 'Defeat',NA))) -> final
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement