Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(rio)
- library(dplyr)
- df <- rio::import(file = 'sample_y.csv')
- allvars <- c('market', 'disk', 'money', 'zen', 'music', 'yandex', 'radio', 'rasp', 'avia', 'realty', 'translate', 'serp', 'tv', 'kinopoik', 'mail', 'metro', 'news')
- #creating variations
- variations <- expand.grid(allvars, allvars, allvars, stringsAsFactors = T, KEEP.OUT.ATTRS = F)
- variations %>% mutate_all(.funs = as.character) -> variations
- #getting unique variations
- variationssort <- t(apply(variations, MARGIN = 1, function(x) stringr::str_sort(x)))
- variationsortunique <- unique(as.data.frame(variationssort,stringsAsFactors = F))
- #computing invidividual grows
- df %>% select(allvars, profit) -> newdf
- everything <- matrix(nrow = 1, ncol = 2, dimnames = list(1,c('diff',"varname")))
- for(i in allvars)
- {
- newdf %>% group_by(get(eval(i))) %>% summarise(mean = mean(profit, na.rm = T)) %>% transmute(diff = .[2,2]-.[1,2]) %>% .[1,1] -> dftemp
- dftemp %>% mutate(varname = i) -> dftemp
- everything <- rbind(everything, dftemp)
- }
- rm(dftemp)
- #computing mutual grow
- everything2 <- matrix(nrow = 1, ncol = 4, dimnames = list(1, c('diff', 'V1', 'V2', 'V3')))
- for(i in 1:nrow(variationsortunique))
- {
- df[,c(paste0(variationsortunique[i,]),'profit')] -> dfshit
- dfshit %>% mutate(need = ifelse(dfshit[,1] == TRUE & dfshit[,2] == TRUE & dfshit[,3] == TRUE,'TRUES',
- ifelse(dfshit[,1] == FALSE & dfshit[,2] == FALSE & dfshit[,3] == FALSE,'FALSES',NA))) %>%
- group_by(need) %>% summarise(needmean = mean(profit, na.rm = T)) %>% transmute(diff = .[2,2] - .[1,2]) %>% .[1,1] %>% cbind(variationsortunique[i,]) -> dfshittemp
- everything2 <- rbind(everything2, dfshittemp)
- }
- rm(dfshit, dfshittemp)
- #comparing
- indgrow <- as.data.frame(everything)
- mutgrow <- as.data.frame(everything2)
- mutgrow %>% slice(-1) %>%
- mutate(diff = unlist(diff),
- V1num = unlist(indgrow[match(.$V1, indgrow[,2]),1]),
- V2num = unlist(indgrow[match(.$V2, indgrow[,2]),1]),
- V3num = unlist(indgrow[match(.$V3, indgrow[,2]),1]),
- indgrows = rowSums(.[5:7]),
- verification = ifelse(diff > indgrows, 'Victory',
- ifelse(diff < indgrows, 'Defeat',NA))) -> final
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement